第1章 大数据漫游指南 1
1.1 Spark前传 1
1.1.1 Web 2.0时代 2
1.1.2 无处不在的传感器 7
1.2 Spark Streaming:MapReduce和CEP的交集 9
第2章 Spark简介 10
2.1 安装 11
2.2 执行 12
2.2.1 独立集群模式(Standalone Cluster) 12
2.2.2 YARN模式 13
2.3 第一个应用程序 13
2.3.1 构建 16
2.3.2 执行 17
2.4 SparkContext 19
2.4.1 RDDs创建 19
2.4.2 处理依赖关系 20
2.4.3 创建共享变量 21
2.4.4 作业执行 22
2.5 RDD 22
2.5.1 持久化 23
2.5.2 转换 24
2.5.3 行动(Action) 28
小结 29
第3章 实时RDD:DStream 30
3.1 从连续流到离散流 30
3.2 第一个Spark Streaming应用程序 31
3.2.1 构建和执行 34
3.2.2 Streaming Context 34
3.3 DStreams 36
3.3.1 Spark Streaming应用程序剖析 38
3.3.2 转换 42
小结 52
第4章 高速流:并行化及其他 54
4.1 流数据的一大飞跃 54
4.2 并行化 56
4.2.1 Worker 56
4.2.2 执行器(Executor) 57
4.2.3 任务(Task) 59
4.3 批处理间隔 62
4.4 调度 64
4.4.1 应用程序间调度 64
4.4.2 批处理调度 64
4.4.3 作业间调度 65
4.4.4 一个行动,一个作业 65
4.5 内存 66
4.5.1 序列化 67
4.5.2 压缩(Compression) 70
4.5.3 垃圾收集 70
4.6 Shuffle 70
4.6.1 早期投影和过滤 70
4.6.2 经常使用组合器 70
4.6.3 大量运用平行化 70
4.6.4 文件合并(File Consolidation) 71
4.6.5 更多内存 71
小结 71
第5章 链接外部数据源 72
5.1 智慧城市,智慧地球,一切更智慧 72
5.2 ReceiverInputDStream 74
5.3 套接字 76
5.4 MQTT 85
5.5 Flume 89
5.5.1 基于推模式的Flume数据摄取 91
5.5.2 基于拉模式的Flume数据摄取 92
5.6 Kafka 92
5.6.1 基于接收器的Kafka消费者 95
5.6.2 直接Kafka消费者 98
5.7 Twitter 99
5.8 块间隔 100
5.9 自定义接收器 100
小结 104
第6章 边界效应 106
6.1 盘点股市 106
6.2 foreachRDD 108
6.2.1 为每条记录创建一个连接 110
6.2.2 为每个分区创建一个连接 111
6.2.3 静态连接 112
6.2.4 惰性静态连接 113
6.2.5 静态连接池 114
6.3 可扩展流存储 116
6.3.1 HBase 117
6.3.2 股市控制台(Dashboard) 118
6.3.3 SparkOnHBase 120
6.3.4 Cassandra 122
6.3.5 Spark Cassandra连接器 124
6.4 全局状态(Global State) 126
6.4.1 静态变量 126
6.4.2 updateStateByKey() 128
6.4.3 累加器 129
6.4.4 外部解决方案 131
小结 133
第7章 充分准备 134
7.1 每个点击都异乎重要 134
7.2 Tachyon (Alluxio) 135
7.3 Spark Web UI 138
7.3.1 历史分析 151
7.3.2 RESTful度量 152
7.4 日志记录 153
7.5 外部度量 154
7.6 系统度量 156
7.7 监控和报警 157
小结 159
第8章 实时ETL和分析技术 160
8.1 交易数据记录的强大功能 160
8.2 第一个流式Spark SQL应用程序 162
8.3 SQLContext 165
8.3.1 创建数据框 165
8.3.2 执行SQL 168
8.3.3 配置 169
8.3.4 用户自定义函数 169
8.3.5 Catalyst:查询执行和优化 171
8.3.6 HiveContext 171
8.4 数据框(Data Frame) 173
8.4.1 类型 173
8.4.2 查询转换 173
8.4.3 行动 180
8.4.4 RDD操作 182
8.4.5 持久化 182
8.4.6 最佳做法 183
8.5 SparkR 183
8.6 第一个SparkR应用程序 184
8.6.1 执行 185
8.6.2 流式SparkR 185
小结 188
第9章 大规模机器学习 189
9.1 传感器数据风暴 189
9.2 流式MLlib应用程序 191
9.3 MLlib 194
9.3.1 数据类型 194
9.3.2 统计分析 197
9.3.3 预处理 198
9.4 特征选择和提取 199
9.4.1 卡方选择 199
9.4.2 主成分分析 200
9.5 学习算法 201
9.5.1 分类 202
9.5.2 聚类 202
9.5.3 推荐系统 204
9.5.4 频繁模式挖掘 207
9.6 流式ML管道应用程序 208
9.7 ML 211
9.8 管道交叉验证 212
小结 213
第10章 云、Lambda及Python 215
10.1 一条好评胜过一千个广告 216
10.2 Google Dataproc 217
10.3 基于Dataproc应用程序创建的第一个Spark 220
10.4 PySpark 227
10.5 Lambda架构 229
10.6 流式图分析 238
总结 241