第1章 Spark生态介绍 1
1.1 MapReduce、 Storm和Spark模型比较 1
1.2 Spark产生背景 3
1.3 Spark的内存计算框架 5
1.4 Spark Streaming:流式计算框架 6
1.5 Spark SQL 7
1.6 Spark MLlib:机器学习 8
1.7 Spark GraphX和取代Bagel的理由 8
1.8 BlinkDB 9
1.9 SparkR 9
第2章 Spark的安装与运行 10
2.1 Spark的安装 10
2.1.1 Spark的源码编译方式 10
2.1.2 Spark Standalone安装 12
2.1.3 Spark应用程序部署工具spark-submit 14
2.1.4 Spark的高可用性部署 15
2.2 Spark的运行架构 16
2.2.1 基本术语 16
2.2.2 运行架构 17
2.2.3 Spark on Standalone的运行过程 19
2.2.4 Spark on YARN的运行过程 20
2.3 Spark的运行 22
2.3.1 Spark on Standalone 22
2.3.2 Spark on YARN 22
2.3.3 Standalone与YARN模式优缺点比较 23
第3章 Spark的Scala编程 25
3.1 Scala开发环境搭建 25
3.2 Scala开发Spark应用程序 25
3.3 编程实现 26
3.3.1 使用Java编程 26
3.3.2 使用Python编程 27
第4章 Spark的编程模型和解析 28
4.1 Spark的编程模型 28
4.2 RDD的特点、操作、依赖关系 28
4.3 Spark应用程序的配置 31
4.4 Spark的架构 31
4.5 Spark的容错机制 32
4.6 数据的本地性 32
4.7 缓存策略介绍 33
4.8 宽依赖和窄依赖 35
第5章 Spark数据挖掘 38
5.1 MLlib 38
5.2 GraphX 39
5.2.1 GraphX原理 39
5.2.2 Table Operator和Graph Operator的区别 40
5.2.3 Vertices、 Edges和Triplets介绍 42
5.2.4 GraphX图构造者 43
5.3 SparkR 45
5.3.1 SparkR原理 45
5.3.2 如何运行SparkR 46
第6章 Spark Streaming 48
6.1 Spark Streaming与Storm的区别 48
6.2 Kafka的部署 49
6.3 Kafka与Spark Streaming的整合 50
6.4 Spark Streaming原理 52
6.4.1 Spark流式处理架构 52
6.4.2 DStream的特点 53
6.4.3 Dstream的操作和RDD的区别 54
6.4.4 无状态转换操作与有状态转换操作 54
6.4.5 优化Spark Streaming 55
6.5 Streaming的容错机制 56
6.6 Streaming在YARN模式下的注意事项 57
第7章 Spark优化 59
7.1 序列化优化——Kryo 59
7.2 Spark参数优化 60
7.3 Spark任务的均匀分布策略 61
7.4 Partition key倾斜的解决方案 63
7.5 Spark任务的监控 63
7.6 GC的优化 65
7.7 Spark Streaming吞吐量优化 69
7.8 Spark RDD使用内存的优化策略 70
第8章 SQL on Spark 72
8.1 BDAS数据分析软件栈 72
8.2 Spark SQL工具 74
8.3 Spark SQL原理 76
8.4 Spark SQL编程 78