当前位置:首页 > 工业技术
Storm企业级应用  实战、运维和调优
Storm企业级应用  实战、运维和调优

Storm企业级应用 实战、运维和调优PDF电子书下载

工业技术

  • 电子书积分:10 积分如何计算积分?
  • 作 者:马延辉,陈书美,雷葆华著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111503385
  • 页数:241 页
图书介绍:本书共11章,分为三篇。基础篇(第1~3章),介绍了Storm背景、基本原理、安装部署、核心概念和数据流模型。实战篇(第4~9章),通过6个典型的应用案例和代码示例,结合实践技巧和理论知识,深入讲解了如何使用Storm设计大型数据应用系统。技巧篇(第10~11章),重点介绍了Storm的高级特性、运维监控和性能调优等,并结合生产系统的性能优化、运维经验和使用技巧等方面进行讲解,旨在提升读者的实际操作经验。
《Storm企业级应用 实战、运维和调优》目录

基础篇 2

第1章 认识Storm 2

1.1 什么是实时流计算 2

1.1.1 实时流计算背景 3

1.1.2 实时计算应用场景 3

1.1.3 实时计算处理流程 4

1.1.4 实时计算框架 5

1.2 Storm是什么 11

1.2.1 Storm出现的背景 12

1.2.2 Storm简介 12

1.2.3 Storm的设计思想 13

1.2.4 Storm与Hadoop的角色和组件比较 14

1.3 Storm核心组件 15

1.3.1 主节点Nimbus 15

1.3.2 工作节点Supervisor 15

1.3.3 协调服务组件ZooKeeper 16

1.3.4 其他核心组件 16

1.4 Storm的特性 16

1.5 Storm的功能 18

1.6 本章小结 19

第2章 开始使用Storm 20

2.1 环境准备 20

2.1.1 系统配置 20

2.1.2 安装ZooKeeper集群 22

2.2 启动模式 26

2.2.1 本地模式 26

2.2.2 分布式模式 26

2.3 安装部署Storm集群 26

2.3.1 安装Storm依赖库 27

2.3.2 安装Storm集群 28

2.3.3 启动Storm集群 31

2.3.4 停止Storm集群 33

2.4 创建Topology并向集群提交任务 33

2.4.1 创建Topology 34

2.4.2 向集群提交任务 36

2.5 本章小结 36

第3章 核心概念和数据流模型 37

3.1 Tuple元组 37

3.1.1 Tuple描述 37

3.1.2 Tuple的生命周期 38

3.2 Spout数据源 39

3.2.1 Spout介绍 39

3.2.2 Spout实例 40

3.3 Bolt消息处理者 42

3.3.1 Bolt介绍 42

3.3.2 Bolt实例 45

3.4 Topology拓扑 47

3.4.1 Topology实例 48

3.4.2 Topology运行 51

3.5 Stream消息流和Stream Grouping消息流组 55

3.5.1 Stream消息流 55

3.5.2 Stream Grouping消息流组 55

3.6 Task任务 56

3.7 Worker工作者进程 56

3.8 Worker、 Task、 Executor三者之间的关系 57

3.9 事务 57

3.10 数据流模型 58

3.10.1 数据流模型简介 58

3.10.2 Storm数据流模型 60

3.11 本章小结 61

实战篇 64

第4章 实例1:移动互联——语音“实时墙” 64

4.1 业务背景 64

4.1.1 案例背景 64

4.1.2 设计目标 65

4.1.3 数据格式 66

4.1.4 硬件配置 68

4.2 系统架构与模块设计 68

4.2.1 整体架构 69

4.2.2 数据采集 70

4.2.3 数据实时处理 70

4.2.4 存储设计 70

4.2.5 Web实时展示 71

4.2.6 硬件部署图 72

4.3 核心模块实现 73

4.3.1 实时处理业务逻辑实现 73

4.3.2 Web展示实现 80

4.3.3 最终效果呈现 88

4.4 本章小结 89

第5章 实例2:运营商——网络流量流向实时分析 90

5.1 业务背景 90

5.1.1 案例背景 91

5.1.2 设计目标 91

5.1.3 数据规模预估 92

5.1.4 数据格式 92

5.1.5 统计分析需求 93

5.2 系统架构与模块设计 94

5.2.1 整体架构 94

5.2.2 数据源 95

5.2.3 日志采集 96

5.2.4 数据存储 96

5.2.5 数据处理 97

5.2.6 目标存储和扩展服务 97

5.2.7 结果Web展示 97

5.3 核心模块实现 98

5.3.1 模拟数据实现 98

5.3.2 日志采集和存储实现 102

5.3.3 数据处理实现 105

5.3.4 Web展示实现 111

5.4 本章小结 114

第6章 实例3:交通——基于GPS的实时路况分析 115

6.1 业务背景 115

6.1.1 案例背景 115

6.1.2 设计目标 116

6.1.3 数据格式 118

6.1.4 实时路况分析方法 118

6.2 系统架构和模块设计 118

6.3 核心模块的实现 121

6.3.1 安装Kafka集群 121

6.3.2 Flume整合Kafka 124

6.3.3 实时处理数据 125

6.3.4 Web页面展示 127

6.4 本章小结 129

第7章 实例4:互联网——数据质量实时监控 130

7.1 业务背景 130

7.1.1 案例背景 130

7.1.2 设计目标 132

7.1.3 数据格式 132

7.2 系统架构与模块设计 133

7.2.1 整体架构 133

7.2.2 结果Web展示 135

7.3 核心模块实现 135

7.3.1 模拟数据 135

7.3.2 实时处理业务逻辑的实现 141

7.3.3 Web界面实现 147

7.3.4 最终效果图 150

7.4 本章小结 152

第8章 实例5:交通——超速频发路段监控 153

8.1 业务背景 153

8.1.1 案例背景 153

8.1.2 数据类型 155

8.2 系统架构和模块设计 157

8.3 核心模块实现 158

8.3.1 实现入口类Main 158

8.3.2 数据源SocketSpout的实现 159

8.3.3 实时处理MapSearchBolt和SpeedProcessBolt的实现 161

8.3.4 目标存储DataBaseLoadBolt的实现 169

8.4 本章小结 171

第9章 实例6:互联网——广告实时流量统计 172

9.1 广告实时流量统计系统架构 172

9.1.1 广告数据 172

9.1.2 详细需求描述 174

9.1.3 系统架构 175

9.2 表结构与模块设计 177

9.2.1 表结构设计 177

9.2.2 功能模块设计 178

9.3 核心模块实现 179

9.3.1 部署物理集群环境 179

9.3.2 Kafka生产者逻辑的实现 181

9.3.3 使用Storm-kafka实现业务逻辑 182

9.3.4 使用HBase存储并实现统计 193

9.4 本章小结 194

技巧篇 196

第10章 Storm常见故障及解决方法 196

10.1 安装部署故障 196

10.1.1 “no jzmq in java.library.path”异常 196

10.1.2 “No rule to make target”异常 198

10.1.3 “cannot access org.zeromq.ZMQ”异常 198

10.1.4 缺少pkg-config异常 198

10.1.5 “java.lang.UnsatisfiedLinkError”异常 199

10.1.6 “ java.lang.NoClassDefFoundError: clojure.core.protocols$”异常 199

10.1.7 “Error: cannot link with -luuid, install uuid-dev”异常 199

10.1.8 “bad interpreter: No such file or directory”异常 200

10.1.9 “org.zeromq.ZMQException: Invalid argument”异常 200

10.2 启动故障 201

10.2.1 “java.io.FileNotFoundException”异常 201

10.2.2 “java.io.EOFException”异常 202

10.3 运行时故障 202

10.3.1 “Nimbus host is not set”异常 203

10.3.2 “AlreadyAliveException(msg:xxx is alreadyactive)”异常 203

10.3.3 无法序列化log4j.Logger异常 203

10.3.4 “Failing message”异常 203

10.3.5 “java.io.NotSerializableException”异常 204

10.3.6 “java.lang.NoClassDefFoundError”异常 205

10.3.7 “java.net.NoRouteToHostException”异常 206

10.3.8 “java.net.UnknownHostException”异常 206

10.3.9 重复defaults.yaml资源文件异常 207

10.3.10 “KeeperException$NoNodeException”异常 208

10.3.11 “A fatal error has been detected by the Java Runtime Environment”错误 209

10.3.12 “java.lang.ArrayIndexOutOfBoundsException”异常 212

10.3.13 DRPC空指针异常 212

10.3.14 Storm Thrift读取数据报错 212

10.4 本章小结 214

第11章 Storm使用技巧和最佳实践 215

11.1 核心组件使用要点 215

11.1.1 Spout和Bolt 215

11.1.2 ZooKeeper集群尽量独立 219

11.1.3 Thrift服务的应用场景 220

11.1.4 序列化机制的使用场景 220

11.2 集群配置技巧 220

11.2.1 默认参数配置 220

11.2.2 日志信息 223

11.2.3 合理配置JVM参数 223

11.3 集群运维技巧 224

11.3.1 Storm计算结果的存储位置 224

11.3.2 Storm集群动态增删节点 224

11.3.3 关闭Storm相关进程 224

11.3.4 Storm UI显示内容的问题 224

11.4 项目开发技巧 225

11.4.1 使用assembly插件打包 225

11.4.2 依赖JAR冲突 228

11.5 保证消息的可靠处理 228

11.5.1 消息失败后的处理 228

11.5.2 主动干预可靠性 229

11.5.3 处理重复的Tuple 229

11.6 理解DRPC原语 230

11.6.1 DRPC 工作流 230

11.6.2 LinearDRPCTopologyBuilder实现类 231

11.6.3 DRPC的两种模式 231

11.7 快速理解一致性事务 232

11.7.1 Trident框架的使用 233

11.7.2 Trident框架的细节 234

11.7.3 事务性Spout 236

11.7.4 状态State 238

11.8 本章小结 241

返回顶部