第1章 Spark简介 1
1.1 什么是Spark 2
1.2 Spark生态圈 2
1.2.1 伯克利数据分析协议栈 2
1.2.2 Spark开源社区发展 3
1.3 RDD编程模型 3
1.3.1 RDD抽象概念 3
1.3.2 RDD的操作 5
1.3.3 RDD的依赖关系 6
1.3.4 一个典型的DAG示意图 6
第2章 Spark RDD实践案例与解析 8
2.1 Spark应用程序部署 9
2.1.1 Spark应用的基本概念 9
2.1.2 应用程序的部署方式 10
2.2 RDD数据的输入、处理、输出的基本案例与解析 14
2.2.1 集群环境的搭建 15
2.2.2 交互式工具的启动 19
2.2.3 文本数据的ETL案例实践与解析 25
2.2.4 文本数据的初步统计案例实践与解析 28
2.2.5 文本数据统计结果的持久化案例实践与解析 31
2.2.6 RDD的Lineage关系的案例与源码解析 33
2.2.7 RDD的持久化案例与解析 43
2.2.8 RDD的构建案例与解析 48
2.2.9 分区数设置的案例与源码解析 49
2.3 RDD API的应用案例与解析 53
2.3.1 如何查找RDD API的隐式转换 54
2.3.2 RDD[T]的分区相关的API 57
2.3.3 RDD[T]常用的聚合API 60
2.3.4 DoubleRDDFunctions(self:RDD[Double])常用的API 63
2.3.5 PairRDDFunctions[K,V]聚合相关的API 66
2.3.6 RDD相互间操作的API 71
2.3.7 PairRDDFunctions[K,V]间的相关API 76
2.3.8 OrderedRDDFunctions[K,V,P<:Product2[K,V]]常用的API 77
2.4 Spark应用程序构建 78
2.4.1 基于SBT构建Spark应用程序的实例 79
2.4.2 基于IDEA构建Spark应用程序的实例 81
2.4.3 Spark提交应用的调试实例 93
2.5 移动互联网数据分析案例与解析 98
2.5.1 移动互联网数据的准备 99
2.5.2 移动互联网数据分析与解析 100
2.6 Spark RDD实践中的常见问题与解答 103
第3章 Spark SQL实践案例与解析 105
3.1 Spark SQL概述 106
3.2 DataFrame处理的案例与解析 106
3.2.1 DataFrame编程模型 107
3.2.2 DataFrame基本操作案例与解析 107
3.2.3 DataFrame与RDD之间的转换案例与解析 122
3.2.4 缓存表(列式存储)的案例与解析 127
3.2.5 DataFrame API的应用案例与分析 132
3.3 Spark SQL处理各种数据源的案例与解析 158
3.3.1 通用的加载/保存功能的案例与解析 160
3.3.2 Parquet文件处理的案例与解析 165
3.3.3 JSON数据集操作的案例与解析 167
3.3.4 操作Hive表的案例与解析 170
3.3.5 使用JDBC操作其他数据库的案例与解析 185
3.3.6 集成Hive数据仓库的案例与解析 191
3.4 基于Hive的人力资源系统数据处理案例与解析 197
3.4.1 人力资源系统的数据库与表的构建 199
3.4.2 人力资源系统的数据的加载 201
3.4.3 人力资源系统的数据的查询 202
第4章 Spark Streaming实践案例与解析 206
4.1 Spark Streaming概述 207
4.2 Spark Streaming基础概念 208
4.3 企业信息实时处理的案例与解析 208
4.3.1 处理TCP数据源的案例与解析 209
4.3.2 处理HDFS文件数据源的案例与解析 225
4.3.3 处理Kafka数据源的准备工作 229
4.3.4 基于Receiver读取Kafka数据的案例与解析 232
4.3.5 直接读取(无Receiver)Kafka数据的案例与解析 243
4.3.6 处理Flume数据源的实践准备 253
4.3.7 基于Flume风格的推送数据案例与解析 254
4.3.8 定制FlumeSink的拉取数据案例与解析 261
4.4 性能调优 271
4.4.1 减少批处理的时间 271
4.4.2 设置正确的批间隔 273
4.4.3 内存调优 274
第5章 Tachyon实践案例与解析 276
5.1 Tachyon概述 277
5.2 重新编译部署包 279
5.2.1 重新编译Tachyon的部署包 279
5.2.2 重新编译Spark的部署包 279
5.3 Tachyon部署的案例与解析 283
5.3.1 单机模式部署的案例与解析 283
5.3.2 集群模式部署的案例与解析 291
5.3.3 集群Master容错部署的案例与解析 294
5.4 Tachyon配置的案例与解析 299
5.4.1 底层存储系统的配置案例与解析 299
5.4.2 配置属性与解析 302
5.5 命令行接口的案例与解析 306
5.5.1 命令行接口的说明 306
5.5.2 命令行接口的案例实践与解析 308
5.6 同步底层文件系统的案例与解析 312
5.6.1 同步HDFS底层文件系统的案例与解析 313
5.6.2 同步本地底层文件系统的案例与解析 314
5.7 基于Tachnyon运行的案例与解析 316
5.7.1 基于Tachyon运行Spark的案例与解析 316
5.7.2 基于Tachyon运行Hadoop MR的案例与解析 327
附录 Spark 1.4 版本新特性 330