本书详细阐述了实时大数据分析的实现过程,主要包括大数据技术前景及分析平台;熟悉Storm平台;用Storm处理数据;Trident介绍和Storm性能优化;熟悉Kinesis;熟悉Spark;RDD编程;Spark的SQL查询引擎;Spark Streaming分析流数据以及Lambda架构等内容。此外,本书还分享了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
目 录
第1章 大数据技术前景及分析平台 1
1.1 大数据的概念 1
1.2 大数据的维度范式 2
1.3 大数据生态系统 3
1.4 大数据基础设施 4
1.5 大数据生态系统组件 5
1.5.1 构建业务解决方案 8
1.5.2 数据集处理 8
1.5.3 解决方案实施 8
1.5.4 呈现 9
1.6 分布式批处理 9
1.7 分布式数据库(NoSQL) 13
1.7.1 NoSQL数据库的优势 15
1.7.2 选择NoSQL数据库 16
1.8 实时处理 16
1.8.1 电信或移动通信场景 17
1.8.2 运输和物流 17
1.8.3 互联的车辆 18
1.8.4 金融部门 18
1.9 本章小结 18
第2章 熟悉Storm 19
2.1 Storm概述 19
2.2 Storm的发展 20
2.3 Storm的抽象概念 22
2.3.1 流 22
2.3.2 拓扑 22
2.3.3 Spout 23
2.3.4 Bolt 23
2.3.5 任务 24
2.3.6 工作者 25
2.4 Storm的架构及其组件 25
2.4.1 Zookeeper集群 25
2.4.2 Storm集群 25
2.5 如何以及何时应用Storm 27
2.6 Storm的内部特性 32
2.6.1 Storm的并行性 32
2.6.2 Storm的内部消息处理 34
2.7 本章小结 36
第3章 用Storm处理数据 37
3.1 Storm输入数据源 37
3.2 认识Kafka 38
3.2.1 关于Kafka的更多知识 39
3.2.2 Storm的其他输入数据源 43
3.2.3 Kafka作为输入数据源 46
3.3 数据处理的可靠性 47
3.3.1 锚定的概念和可靠性 49
3.3.2 Storm的acking框架 51
3.4 Storm的简单模式 52
3.4.1 联结 52
3.4.2 批处理 53
3.5 Storm的持久性 53
3.6 本章小结 58
第4章 Trident概述和Storm性能优化 59
4.1 应用Trident 59
4.1.1 事务 60
4.1.2 Trident 拓扑 60
4.1.3 Trident操作 61
4.2 理解LMAX 65
4.2.1 内存和缓存 66
4.2.2 环形缓冲区—粉碎器的心脏 69
4.3 Storm的节点间通信 72
4.3.1 ZeroMQ 73
4.3.2 Storm的ZeroMQ配置 74
4.3.3 Netty 74
4.4 理解Storm UI 75
4.4.1 Storm UI登录页面 75
4.4.2 拓扑首页 78
4.5 优化Storm性能 80
4.6 本章小结 83
第5章 熟悉Kinesis 84
5.1 Kinesis架构概述 84
5.1.1 Amazon Kinesis的优势和用例 84
5.1.2 高级体系结构 86
5.1.3 Kinesis的组件 87
5.2 创建Kinesis流服务 90
5.2.1 访问AWS 90
5.2.2 配置开发环境 91
5.2.3 创建Kinesis流 93
5.2.4 创建Kinesis流生产者 97
5.2.5 创建Kinesis流消费者 102
5.2.6 产生和消耗犯罪警报 102
5.3 本章小结 105
第6章 熟悉Spark 106
6.1 Spark概述 107
6.1.1 批量数据处理 107
6.1.2 实时数据处理 108
6.1.3 一站式解决方案Apache Spark 110
6.1.4 何时应用Spark—实际用例 112
6.2 Spark的架构 114
6.2.1 高级架构 114
6.2.2 Spark扩展/库 116
6.2.3 Spark的封装结构和API 117
6.2.4 Spark的执行模型—主管-工作者视图 119
6.3 弹性分布式数据集(RDD) 122
6.4 编写执行第一个Spark程序 124
6.4.1 硬件需求 125
6.4.2 基本软件安装 125
6.4.3 配置Spark集群 127
6.4.4 用Scala编写Spark作业 129
6.4.5 用Java编写Spark作业 132
6.5 故障排除提示和技巧 133
6.5.1 Spark所用的端口数目 134
6.5.2 类路径问题—类未找到异常 134
6.5.3 其他常见异常 134
6.6 本章小结 135
第7章 应用RDD编程 136
7.1 理解Spark转换及操作 136
7.1.1 RDD API 137
7.1.2 RDD转换操作 139
7.1.3 RDD功能操作 141
7.2 编程Spark转换及操作 142
7.3 Spark中的持久性 157
7.4 本章小结 159
第8章 Spark的SQL查询引擎——Spark SQL 160
8.1 Spark SQL的体系结构 161
8.1.1 Spark SQL的出现 161
8.1.2 Spark SQL的组件 162
8.1.3 Catalyst Optimizer 164
8.1.4 SQL/Hive context 165
8.2 编写第一个Spark SQL作业 166
8.2.1 用Scala编写Spark SQL作业 166
8.2.2 用Java编写Spark SQL作业 170
8.3 将RDD转换为DataFrame 173
8.3.1 自动化过程 174
8.3.2 手动过程 176
8.4 应用Parquet 179
8.4.1 在HDFS中持久化Parquet数据 182
8.4.2 数据分区和模式演化/合并 185
8.5 Hive表的集成 186
8.6 性能调优和最佳实践 190
8.6.1 分区和并行性 191
8.6.2 序列化 191
8.6.3 缓存 192
8.6.4 内存调优 192
8.7 本章小结 194
第9章 用Spark Streaming分析流数据 195
9.1 高级架构 195
9.1.1 Spark Streaming的组件 196
9.1.2 Spark Streaming的封装结构 198
9.2 编写第一个Spark Streaming作业 200
9.2.1 创建流生成器 201
9.2.2 用Scala编写Spark Streaming作业 202
9.2.3 用Java编写Spark Streaming作业 205
9.2.4 执行Spark Streaming作业 207
9.3 实时查询流数据 209
9.3.1 作业的高级架构 209
9.3.2 编写Crime生产者 210
9.3.3 编写Stream消费者和转换器 212
9.3.4 执行SQL Streaming Crime分析器 214
9.4 部署和监测 216
9.4.1 用于Spark Streaming的集群管理器 216
9.4.2 监测Spark Streaming应用程序 218
9.5 本章小结 219
第10章 介绍Lambda架构 220
10.1 什么是Lambda架构 220
10.1.1 Lambda架构的需求 220
10.1.2 Lambda架构的层/组件 222
10.2 Lambda架构的技术矩阵 226
10.3 Lambda架构的实现 228
10.3.1 高级架构 229
10.3.2 配置Apache Cassandra和Spark 230
10.3.3 编写自定义生产者程序 233
10.3.4 编写实时层代码 235
10.3.5 编写批处理层代码 238
10.3.6 编写服务层代码 239
10.3.7 执行所有层代码 241
10.4 本章小结 243
下载体验