从零开始学Storm

从零开始学Storm

赵必厦, 程丽明, 编著

出版社:清华大学出版社

年代:2016

定价:69.0

书籍简介:

本书在第1版的基础上面,进行了Storm版本、插图、理论知识等的更新。本书详细介绍Storm,以Storm官方网站最新的Release版本Storm 0.10.0为主,介绍了Storm的理论基础、环境搭建、研发准备、应用案例等。本书理论联系实际,通过大量实例,让读者在较短的时间内掌握Storm的使用,搭建与研发出自己的基于Storm的大数据处理平台。

作者介绍:

赵必厦,硕士,具有多年的面向对象语言研发经验,熟练掌握C++、Java、C#等面向对象语言,专注于云计算、大数据、互联网等方面的研究与研发工作,积累了丰富的经验。 程丽明,硕士,目前从事服务器虚拟化与云计算构建、信息化安全的研究和产品开发工作。有多年的项目开发经验,研究兴趣包括虚拟化、云计算、SDN、移动办公安全等。

书籍目录:

第1章 Storm简介

1.1 什么是Storm 1

1.2 Storm的诞生 3

1.2.1 从Twitter说起 3

1.2.2 Twitter需要处理大批实时性要求高的大数据业务 3

1.2.3 Storm帮助Twitter解决实时海量大数据处理问题 4

1.3 Storm的成长 5

1.3.1 Storm正式开源 5

1.3.2 Apache接管并孵化Storm 5

1.3.3 Storm的核心技术和基本组成 6

1.3.4 Storm的项目小组 7

1.3.5 Storm的技术支持网站 10

1.4 Storm的优势 13

1.4.1 集成多种技术 13

1.4.2 简单的API 13

1.4.3 可扩展的 14

1.4.4 容错的 14

1.4.5 保证数据处理 14

1.4.6 可以使用任何语言 14

1.4.7 部署和操作简单 15

1.4.8 自由开源 15

1.5 Storm的应用现状和发展趋势 15

1.5.1 应用现状 16

1.5.2 发展趋势 18

1.6 如何学习Storm 20

1.7 本书的章节安排及学习建议 21

1.7.1 本书的章节安排 21

1.7.2 关于如何阅读本书的建议 22

1.8 本章小结 23

第 2 章 Storm的基本知识

2.1 概念 24

2.1.1 元组(Tuple) 24

2.1.2 流(Stream) 25

2.1.3 龙卷(Spout) 26

2.1.4 闪电(Bolt) 27

2.1.5 拓扑(Topology) 27

2.1.6 主控节点与工作节点 28

2.1.7 Nimbus进程与Supervisor进程 28

2.1.8 流分组(Stream grouping) 28

2.1.9 工作进程(Worker) 28

2.1.10 任务(Task) 28

2.1.11 执行器(Executor) 28

2.1.12 可靠性(Reliability) 29

2.2 Storm的配置 29

2.2.1 Storm的配置类型 29

2.2.2 defaults.yaml文件 30

2.2.3 storm.yaml文件 33

2.2.4 Config类 34

2.3 序列化(Serialization) 35

2.3.1 动态类型 36

2.3.2 自定义序列化 36

2.3.3 Java序列化 37

2.3.4 特定组件序列化注册 37

2.4 容错机制 37

2.4.1 Worker进程死亡 37

2.4.2 节点死亡 38

2.4.3 Nimbus或者Supervisor守护进程死亡 38

2.4.4 Nimbus是否是“单点故障” 38

2.5 可靠性机制——保证消息处理 38

2.5.1 消息被“完全处理”的含义 38

2.5.2 如果一个消息被完全处理或完全处理失败会发生什么 39

2.5.3 Storm如何保证可靠性 40

2.5.4 Storm如何实现可靠性 43

2.5.5 调节可靠性 44

2.6 消息传输机制 45

2.6.1 ZeroMQ 45

2.6.2 Netty 45

2.6.3 自定义消息通信机制 45

2.7 Storm的开发环境与生产环境 46

2.7.1 开发环境与本地模式 46

2.7.2 生产环境与远程模式 46

2.7.3 开发环境与生产环境的对比 47

2.8 Storm拓扑的并行度(parallelism) 48

2.8.1 工作进程、执行器和任务 48

2.8.2 配置拓扑的并行度 49

2.8.3 拓扑示例 50

2.8.4 如何改变运行中拓扑的并行度 51

2.9 Storm命令行客户端 52

2.10 Javadoc文档 56

2.11 本章小结 56

第 3 章 拓扑详解

3.1 什么是拓扑 57

3.2 TopologyBuilder 57

3.3 流分组 59

3.3.1 什么是流分组 59

3.3.2 不同的流分组方式 60

3.4 一个简单的拓扑 64

3.5 在本地模式下运行拓扑 67

3.6 在生产集群上运行拓扑 68

3.6.1 常见的配置 70

3.6.2 杀死拓扑 70

3.6.3 更新运行中的拓扑 71

3.6.4 监控拓扑 71

3.7 拓扑的常见模式 71

3.7.1 流连接(Stream Join) 71

3.7.2 批处理(Batching) 72

3.7.3 BasicBolt 72

3.7.4 内存中缓存与字段的组合 72

3.7.5 流的top N 72

3.7.6 高效保存最近更新缓存对象的TimeCacheMap(已弃用) 74

3.7.7 分布式RPC的CoordinatedBolt与KeyedFairBolt 75

3.8 本地模式与StormSubmitter的对比 75

3.9 多语言协议(Multi-Language Protocol) 77

3.10 使用非JVM语言操作Storm 81

3.10.1 支持的非Java语言 81

3.10.2 对Storm使用非Java语言 81

3.10.3 实现非Java DSL的笔记 82

3.11 Hook 82

3.12 本章小结 83

第 4 章 组件详解

4.1 基本接口 84

4.1.1 IComponent接口 84

4.1.2 ISpout接口 85

4.1.3 IBolt接口 86

4.1.4 IRichSpout与IRichBolt接口 88

4.1.5 IBasicBolt接口 88

4.1.6 IStateSpout与IRichStateSpout接口 89

4.2 基本抽象类 90

4.2.1 BaseComponent抽象类 90

4.2.2 BaseRichSpout抽象类 90

4.2.3 BaseRichBolt抽象类 91

4.2.4 BaseBasicBolt抽象类 92

4.3 事务接口 92

4.3.1 IPartitionedTransactionalSpout 92

4.3.2 IOpaquePartitionedTransactionalSpout 94

4.3.3 ITransactionalSpout 95

4.3.4 ICommitterTransactionalSpout 96

4.3.5 IBatchBolt 97

4.4 组件之间的相互关系 97

4.5 本章小结 98

第 5 章 Spout详解

5.1 可靠的与不可靠的消息 99

5.2 Spout获取数据的方式 102

5.2.1 直接连接(Direct Connection) 102

5.2.2 消息队列(Enqueued Messages) 103

5.2.3 DRPC(分布式RPC) 104

5.3 常用的Spout 104

5.3.1 Kestrel作为Spout的数据源 104

5.3.2 AMQP作为Spout的数据源 104

5.3.3 JMS作为Spout的数据源 105

5.3.4 Redis作为Spout的数据源 105

5.3.5 beanstalkd作为Spout的数据源 105

5.4 学习编写Spout类 105

5.5 本章小结 106

第 6 章 Bolt详解

6.1 Bolt概述 107

6.2 可靠的与不可靠的Bolt 108

6.2.1 使用Anchoring机制实现可靠的Bolt 108

6.2.2 使用IBasicBolt接口实现自动确认 109

6.3 复合流与复合Anchoring 110

6.3.1 复合流 110

6.3.2 复合Anchoring 110

6.4 使用其他语言定义Bolt 111

6.5 学习编写Bolt类 111

6.5.1 可靠的Bolt 111

6.5.2 不可靠的Bolt 112

6.6 本章小结 113

第 7 章 ZooKeeper详解

7.1 ZooKeeper简介 114

7.2 ZooKeeper的下载和部署 114

7.2.1 ZooKeeper的下载 114

7.2.2 ZooKeeper的部署 115

7.3 ZooKeeper的配置 117

7.4 ZooKeeper的运行 119

7.5 ZooKeeper的本地模式实例 120

7.6 ZooKeeper的数据模型 121

7.6.1 ZNode 122

7.6.2 ZooKeeper中的时间 123

7.6.3 ZooKeeper的Stat结构 123

7.7 ZooKeeper的命令行操作范例 124

7.8 Storm在ZooKeeper中的目录结构 127

7.9 本章小结 128

第 8 章 基础软件的安装与使用

8.1 Linux的基本操作 129

8.1.1 环境变量 129

8.1.2 常用命令 130

8.2 JDK的下载与配置 134

8.2.1 Sun JDK的下载 134

8.2.2 在Linux下安装JDK 135

8.2.3 在Windows下安装JDK 136

8.3 GitHub托管项目的下载 141

8.4 Maven的下载与配置 143

8.4.1 Maven的下载 143

8.4.2 在Linux下部署Maven 144

8.4.3 在Windows下部署Maven 145

8.5 其他软件——Notepad++ 146

8.6 本章小结 147

第 9 章 Storm的安装与配置

内容摘要:

本书由基础知识、安装与部署、研发与维护、进阶知识、企业应用5个模块构成,并细分为20个章节,其中“基础知识”6章、“安装与部署”4章、“研发与维护”4章、“进阶知识”5章、“企业应用”1章,分别介绍了Storm的基本原理、Topology组件、Spout组件、Bolt组件、ZooKeeper集群、Storm的安装与配置、实战环节等内容,包括理论基础、环境搭建、研发准备、企业应用等。本书理论联系实际,通过大量实例分析,让读者在较短的时间内掌握Storm的使用,搭建并研发出自己的基于Storm的大数据处理平台。本书适合所有大数据处理、实时流数据处理、Storm的开发者或爱好者,也适合高等院校和培训学校相关专业的师生参考使用。

编辑推荐:

本书是作者理论研究与实践操作的成果,较深入的探讨了Storm的理论基础与实践应用,语言通俗易懂,适用于各类大数据、Storm开发者,爱好者。
使读者在较短的时间内系统掌握Storm的理论基础,面向Linux平台,搭建与研发自己的基于Storm的大数据处理平台。

书籍规格:

书籍详细信息
书名从零开始学Storm站内查询相似图书
9787302438076
如需购买下载《从零开始学Storm》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次2版印次1
定价(元)69.0语种简体中文
尺寸26 × 19装帧平装
页数印数 3500

书籍信息归属:

从零开始学Storm是清华大学出版社于2016.出版的中图分类号为 TP274 的主题关于 数据处理软件 的书籍。