图书介绍

Storm源码分析2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Storm源码分析
  • 李明,王晓鹏编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115371263
  • 出版时间:2014
  • 标注页数:472页
  • 文件大小:81MB
  • 文件页数:486页
  • 主题词:数据处理软件

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Storm源码分析PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 总体架构与代码结构1

1.1 Storm的总体结构1

1.2 Storm的元数据3

1.2.1 元数据介绍3

1.2.2 Storm怎么使用这些元数据4

1.3 Storm的代码结构7

1.3.1 Clojure代码7

1.3.2 Java代码8

1.3.3 Trident代码9

1.3.4 其他代码10

第2章 搭建Storm集群11

2.1 搭建单机Storm集群11

2.2 搭建多机Storm集群14

2.2.1 设置环境14

2.2.2 启动Storm集群15

2.2.3 提交Topology15

2.3 WordCounTopology介绍15

2.3.1 RandomSentenceSpout15

2.3.2 SplitSentence16

2.3.3 WordCount17

2.3.4 WordCountTopology构建17

第3章 Storm编程基础19

3.1 Fields定义19

3.2 Tuple接口20

3.3 常用声明接口21

3.3.1 配置声明接口22

3.3.2 输入声明接口23

3.3.3 输出字段声明接口24

3.3.4 组件声明接口25

3.4 Spout输出收集器25

3.4.1 ISpoutOutputCollector和SpoutOutputCollector25

3.4.2 Executor中ISpoutOutputCollector的实现27

3.5 Bolt输出收集器28

3.5.1 IOutputCollector和OutputCollector28

3.5.2 IBasicOutputCollector和BasicOutputCollector31

3.5.3 BatchOutputCollector和BatchOutputCollectorImpl32

3.5.4 Executor中的IOutputCollector实现34

3.6 组件接口35

3.7 Spout接口35

3.7.1 ISpout36

3.7.2 IRichSpout38

3.8 Bolt接口38

3.8.1 IBolt38

3.8.2 IRichBolt40

3.8.3 IBasicBolt40

3.8.4 IBatchBolt42

3.8.5 小结45

3.9 Storm数据结构46

3.9.1 GlobalStreamId46

3.9.2 消息分组方式46

3.9.3 StreamInfo47

3.9.4 ShellComponent47

3.9.5 ComponentObject47

3.9.6 ComponentCommon47

3.9.7 SpoutSpec48

3.9.8 Bolt48

3.9.9 StormTopology49

3.9.10 TopologySummary49

3.9.11 SupervisorSummary49

3.9.12 ClusterSummary50

3.9.13 BoltStats50

3.9.14 SpoutStats50

3.9.15 统计信息50

3.9.16 DRPC51

3.10 基本Topology构建器52

3.10.1 TopologyBuilder52

3.10.2 ConfigGetter55

3.10.3 SpoutGetter和BoltGetter55

3.10.4 一个简单例子56

3.11 异常处理57

第4章 基础函数和工具类58

4.1 计时器58

4.1.1 mk-timer58

4.1.2 check-active!60

4.1.3 schedule60

4.1.4 schedule-recurring60

4.1.5 cancel-timer61

4.2 async-loop61

4.3 event-manager62

4.4 even-sampler63

4.5 ZooKeeper工具类64

4.5.1 mk-client64

4.5.2 create-node65

4.5.3 get-data65

4.5.4 进程内启动ZooKeeper66

4 6 LocalState66

4.7 ClusterState68

4.8 StormClusterState69

第5章 通信机制71

5.1 进程间通信71

5.1.1 进程间通信协议71

5.1.2 LocalCluster模式实现72

5.1.3 分布式模式实现73

5.1.4 协议使用75

5.2 进程内通信77

5.2.1 Disruptor Queue的使用77

5.2.2 DisruptorQueue的Clojure处理器80

第6章 Nimbus81

6.1 Nimbus服务接口定义81

6.2 Nimbus相关的数据结构83

6.2.1 Java数据结构83

6.2.2 Clojure数据结构84

6.3 Nimbus中的线程介绍86

6.3.1 mk-assignments87

6.3.2 do-cleanup89

6.3.3 clean-inbox90

6.4 Topology状态转移90

6.4.1 transition-name!90

6.4.2 transition!91

6.4.3 state-transitions92

6.5 启动Nimbus服务96

6.5.1 launch-server!96

6.5.2 service-handler97

6.6 关闭Nimbus服务99

6.7 主要服务方法99

6.7.1 submitTopology99

6.7.2 kill、rebalance、activate、deactivate方法101

6.7.3 文件上传与下载102

6.7.4 获取UI所需的信息104

6.7.5 获取Topology106

6.7.6 获取Storm配置项107

6.8 主要辅助方法107

6.8.1 system-topology!107

6.8.2 normalize-topology112

6.8.3 compute-new-topology->executor->node+port114

6.8.4 compute-executors117

第7章 Scheduler119

7.1 IScheduler接口119

7.2 EvenScheduler120

7.2.1 schedule-topolpgies-evenly120

7.2.2 schedule-topology121

7.2.3 get-alive-assigned-node+port->executors122

7.2.4 sort-slots123

7.3 DefaultScheduler124

7.3.1 default-schedule124

7.3.2 slots-can-reassign126

7.3.3 bad-slots126

7.4 IsolationScheduler127

7.5 调度示例131

7.5.1 EvenScheduler和DefaultScheduler131

7.5.2 IsolationScheduler134

第8章 Scheduler137

8.1 与Supervisor相关的数据结构137

8.1.1 standalone-supervisor137

8.1.2 Supervisor的数据138

8.1.3 本地存储数据139

8.2 Supervisor中的线程140

8.2.1 计时器线程140

8.2.2 同步Nimbus任务的线程140

8.2.3 管理Worker进程的线程143

8.3 启动Supervisor145

8.4 关闭Supervisor147

8.5 重要方法介绍147

8.5.1 launch-worker147

8.5.2 read-allocated-workers150

8.5.3 wait-for-worker-launch151

8.5.4 shutdown-worker152

8.5.5 download-storm-code152

第9章 Worker155

9.1 Worker中的数据155

9.2 Worker中的计时器157

9.2.1 Worker的心跳157

9.2.2 Executor的心跳158

9.2.3 Worker中对ZMQ连接的维护159

9.2.4 从ZooKeeper获取Topology的活跃情况161

9.2.5 小结162

9.3 创建Worker163

9.4 关闭Worker164

9.5 重要辅助方法介绍165

9.5.1 Worker中的接收函数166

9.5.2 Worker中的发送函数167

9.5.3 获取属于Worker的Executor169

9.5.4 创建Executor的接收消息队列和查找表169

9.5.5 下载Topology的配置项以及代码170

9.6 小结171

第10章 Executor172

10.1 Executor的数据172

10.2 Executor的输入和输出174

10.2.1 Executor的输入及处理174

10.2.2 Executor的输出及发送175

10.3 Spout类型的Executor176

10.3.1 准备消息循环的数据176

10.3.2 Spout输入处理函数178

10.3.3 Spout消息发送函数180

10.3.4 Spout对象的初始化181

10.3.5 消息循环182

10.4 Bolt类型的Executor184

10.4.1 准备消息循环的数据184

10.4.2 Bolt输入处理函数184

10.4.3 Bolt的消息发送函数185

10.4.4 Bolt对象的初始化185

10.4.5 消息循环186

10.5 创建Executor187

10.6 辅助函数介绍188

10.6.1 组件的Grouper函数188

10.6.2 带流量控制的错误报告方法193

10.6.3 触发系统Ticks194

10.7 小结196

第11章 Task198

11.1 Task的上下文对象198

11.1.1 TopologyContext198

11.1.2 GeneralTopologyContext199

11.1.3 WorkerTopologyContext200

11.1.4 TopologyContext201

11.2 创建Task数据202

11.3 mk-tasks-fn函数204

11.4 send-unanchored205

11.5 创建Task206

11.6 Storm中传输的消息以及序列化206

第12章 Storm的Ack框架208

12.1 Acker Bolt的实现分析209

12.2 启动消息跟踪211

12.3 消息跟踪212

12.4 Ack机制的例子214

第13章 系统运行统计216

13.1 基础数据结构以及更新算法216

13.1.1 滑动窗口的数据结构216

13.1.2 滑动窗口的回调函数220

13.1.3 滑动窗口集合的类型221

13.2 Storm中的统计信息222

13.2.1 Stats中定义的统计类别222

13.2.2 运行统计的更新223

13.2.3 运行统计的更新时间点223

13.2.4 获取统计数据228

13.3 运行统计的Thrift结构229

第14章 系统运行统计的另一种实现231

14.1 内置统计信息的计算231

14.1.1 MultiCountMetric232

14.1.2 MultiReducedMetric233

14.2 内置统计类型234

14.2.1 Spout类型的内置统计235

14.2.2 Bolt类型的内置统计235

14.3 统计触发消息235

14.3.1 注册统计信息236

14.3.2 触发消息的产生与发送237

14.3.3 处理统计触发消息238

14.4 运行统计收集节点239

14.5 SystemBolt241

第15章 事务Topology的实现243

15.1 事务Topology的实现概述243

15.1.1 事务Topology的类型244

15.1.2 事务Topology的类关系245

15.2 ITransactionalSpout接口246

15.3 协调Spout节点的执行器248

15.3.1 ZooKeeper客户端工具248

15.3.2 协调Spout的执行器255

15.3.3 消息发送Bolt的执行器261

15.4 CoordinatedBolt的实现分析264

15.4.1 TrackingInfo264

15.4.2 CoordinatedOutput-Collector265

15.4.3 CoordinatedBolt中的消息类型267

15.4.4 成员变量以及主要方法分析267

15.5 分区的事务类型271

15.5.1 分区的事务Spout接口271

15.5.2 分区的事务Spout的执行器273

15.6 分区的模糊事务Spout277

15.6.1 分区的模糊事务Spout的接口277

15.6.2 模糊的事务Spout执行器278

15.7 事务Topology的构建器281

15.7.1 构建器的构造函数及成员变量281

15.7.2 设置Bolt对象283

15.7.3 构建Topology284

15.7.4 输入流声明器286

第16章 事务Topology示例288

16.1 例子代码288

16.1.1 分区的事务Spout288

16.1.2 局部计数Bolt的实现291

16.1.3 全局计数Bolt的实现292

16.2 构建Topology293

16.3 事务处理示例295

第17章 Trident的Spout节点298

17.1 ITridentSpout接口298

17.1.1 BatchCoordinator接口299

17.1.2 TridentSpoutCoordinator300

17.1.3 MasterBatchCoordinator301

17.1.4 消息发送节点接口306

17.1.5 消息发送接口的执行器306

17.2 适配IRichSpout接口307

17.3 适配IBatchSpout接口311

17.4 Trident中分区的Spout类型311

17.4.1 分区Spout接口311

17.4.2 分区Spout的执行器313

17.5 模糊事务类型的Spout节点316

17.5.1 模糊事务类型的Spout接口317

17.5.2 模糊事务类型Spout的执行器317

17.6 构建Spout节点320

17.6.1 TridentTopology的newStream调用320

17.6.2 TridentTopology中newDRPCStream调用321

第18章 Trident的存储322

18.1 存储的基本接口322

18.2 MapState接口的实现323

18.2.1 非事务类型的存储324

18.2.2 事务类型的存储325

18.2.3 模糊事务类型存储327

18.3 值的序列化方法329

18.4 数据更新接口330

18.4.1 CombinerValueUpdater330

18.4.2 ReducerValueUpdater331

18.5 存储更新接口331

18.5.1 ReducerAggStateUpdater332

18.5.2 MapReducerAggStateUpdater332

18.5.3 BaseStateUpdater334

18.6 创建存储对象334

第19章 Trident消息336

19.1 ValuePointer336

19.2 Factory接口及其实现337

19.2.1 ProjectionFactory338

19.2.2 FreshOutputFactory339

19.2.3 OperationOutputFactory339

19.2.4 RootFactory341

19.3 消息工厂的例子342

19.4 TridentTupleView342

19.5 ComboList343

第20章 Trident操作与处理节点346

20.1 操作的基本接口346

20.2 Aggregator实现347

20.2.1 GroupedAggregator348

20.2.2 ChainedAggregatorImpl350

20.2.3 SingleEmitAggregator353

20.3 用户接口及其实现355

20.3.1 ReducerAggregator接口及其实现355

20.3.2 CombinerAggregator接口及其实现356

20.4 所有处理节点的上下文357

20.4.1 单个处理节点的上下文358

20.4.2 操作执行的上下文359

20.5 Trident的输出收集器359

20.5.1 FreshCollector359

20.5.2 CaptureCollector360

20.5.3 GroupCollector360

20.5.4 AppendCollector361

20.5.5 AddIdCollector361

20.6 Trident的处理节点362

20.6.1 TridentProcessor接口363

20.6.2 PartitionPersistProcessor363

20.6.3 StateQueryProcessor365

20.7 聚集器的执行367

第21章 Trident流的基本操作370

21.1 流的成员变量和基础方法370

21.1.1 流的成员变量370

21.1.2 流节点名字370

21.1.3 流的映射检查372

21.1.4 添加节点372

21.2 流映射操作373

21.3 流的分组操作374

21.4 流的逐行操作374

21.5 流的分区操作374

21.6 流的单聚集器聚集操作376

21.7 流的多聚集器聚集操作377

21.7.1 ChainedAggregatorDeclarer377

21.7.2 分区上的局部聚集操作379

21.7.3 全局聚集操作379

21.7.4 含有多个聚集器的partitionAggregate操作381

21.8 流的聚集操作382

21.9 流的分区写入操作383

21.10 查询操作384

21.11 流的全局写入操作384

21.12 流的操作与有向图构建384

21.13 分组流385

21.13.1 成员变量385

21.13.2 逐行操作385

21.13.3 分组流的分区聚集操作386

21.13.4 查询操作386

21.13.5 聚集操作386

21.13.6 写入操作387

21.14 利用流操作来构建Topology的例子388

第22章 Trident中流的交互操作392

22.1 基本接口392

22.2 JoinerMultiReducer393

22.2.1 成员变量及构造函数393

22.2.2 execute方法395

22.2.3 complete方法397

22.3 GroupedMultiReducerExecutor397

22.4 MultiReducerProcessor399

22.5 连接操作401

22.6 流合并操作403

第23章 Trident中的Bolt节点404

23.1 SubTopologyBolt404

23.1.1 输入准备404

23.1.2 成员变量405

23.1.3 主要方法406

23.2 Trident中的Bolt执行器409

23.2.1 ITridentBatchBolt接口410

23.2.2 TrackedBatch410

23.2.3 定制的输出收集器412

23.2.4 消息类型414

23.2.5 数据成员分析414

23.2.6 主要成员方法分析416

第24章 Trident的执行优化420

24.1 节点类型420

24.1.1 基本节点类型420

24.1.2 Spout节点422

24.1.3 处理节点422

24.1.4 分区节点423

24.2 执行优化算法426

24.2.1 节点组426

24.2.2 节点组的合并算法427

24.2.3 处理节点组中的分区节点431

24.2.4 节点组以不同的方式收听相同流431

24.2.5 执行优化后的节点组434

24.2.6 计算节点组的并行度434

第25章 Trident与DRPC437

25.1 DRPC服务器438

25.1.1 DRPC服务器的成员变量438

52.1.2 DRPC用户接口及其实现439

25.1.3 DRPC Topology端接口及其实现440

25.1.4 启动DRPC服务器441

25.2 DRPC的客户端442

25.3 DRPC中Spout节点443

25.4 DRPC Spout的执行器446

25.5 completeDRPC操作449

25.6 返回DRPC结果451

第26章 Trident的Topology构建器453

26.1 基本工具函数453

26.1.1 committerBatches453

26.1.2 fleshOutStreamBatchIds453

26.1.3 getOutputStreamBatchGroups454

26.2 TridentTopologyBuilder455

26.2.1 成员变量455

26.2.2 设置Spout节点456

26.2.3 设置Bolt节点458

26.3 一个例子460

第27章 多语言462

27.1 ShellProcess462

27.2 ShellBolt464

27.2.1 成员变量464

27.2.2 读写线程465

27.3 ShellSpout467

第28章 Storm中的配置项469

热门推荐