第1章Spark系统概述
1.1Spark是什么
1.2Spark生态系统BDAS
1.2.1Spark Core
1.2.2Spark SQL
1.2.3Spark Streaming
1.2.4Spark GraphX
1.2.5MLlib
1.2.6Tachyon
1.2.7BlinkDB
思考题
第2章Spark安装和集群部署
2.1搭建Hadoop分布式集群
2.1.1安装VMware虚拟机
2.1.2安装Ubuntu的镜像文件
2.1.3安装JDK
2.1.4搭建另外两台Ubuntu系统并配置SSH免密码登录
2.1.5安装Hadoop和搭建Hadoop分布式集群
2.2Spark安装和集群部署
2.2.1安装Scala
2.2.2安装Spark和集群部署
2.3测试Spark集群
2.3.1通过Spark提供的示例LocalPi测试Spark集群
2.3.2通过Spark Shell测试Spark集群
思考题
第3章Spark RDD与Spark API编程实践
3.1RDD介绍
3.1.1RDD是Spark的核心抽象
3.1.2RDD的特征
3.2RDD的操作分类
3.2.1输入操作
3.2.2转换操作
3.2.3行动操作
3.2.4控制操作
3.3Spark Shell下的Spark API编程实践
3.3.1Local模式下实践map、filter和collect方法
3.3.2集群模式下实践textFile、sortByKey和 saveAstextFile方法
3.3.3集群模式下实践union、join、reduce和lookup方法
3.3.4搜狗日志数据分析实践
3.4基于IntelliJ IDEA使用Spark API开发应用程序
3.4.1搭建和设置IntelliJ IDEA开发环境
3.4.2在IntelliJ IDEA下开发并部署Spark应用程序
3.4.3使用SBT编译Spark应用程序
3.4.4使用Maven构建Spark应用程序
3.4.5Spark工具
思考题
第4章Spark的运行模式
4.1Spark的运行模式概览
4.1.1Spark的基本工作流程
4.1.2Spark应用程序部署
4.2Local模式
4.2.1Local模式实例部署及运行演示
4.2.2Local模式内部实现原理
4.3Standalone模式
4.3.1Standalone模式实例部署及运行演示
4.3.2Standalone模式内部实现原理
4.4Yarn-Cluster模式
4.4.1Yarn-Cluster模式实例部署及运行演示
4.4.2Yarn-Cluster模式内部实现原理
4.5Yarn-Client模式
4.5.1Yarn-Client模式实例部署及运行演示
4.5.2Yarn-Client模式内部实现原理
4.6Mesos模式
4.6.1Mesos模式实例部署及运行演示
4.6.2Mesos模式内部实现原理
思考题
第5章Spark的运行机制
5.1Spark集群的架构
5.2Spark的作业和任务调度
5.2.1Spark Application提交
5.2.2作业(Job)提交
5.2.3DAGScheduler划分Stage并提交
5.2.4TaskScheduler提交Task
5.2.5Executor运行Task并返回结果
5.2.6Driver的处理
5.3容错机制
5.3.1Lineage机制
5.3.2Checkpoint机制
5.4Storage存储模块
5.4.1Storage模块整体架构
5.4.2缓存实现原理
5.4.3缓存策略
5.5Spark的消息传递机制Akka
5.5.1Akka架构解析
5.5.2Akka驱动下的start-all.sh源码解析
5.6Shuffle机制
5.6.1Shuffle的原理
5.6.2Shuffle的写操作
5.6.3Shuffle的读操作
5.7共享变量
5.7.1广播变量
5.7.2累加器
5.8Spark性能调优
5.8.1数据序列化
5.8.2内存优化
5.8.3其他优化方法
思考题
第6章Spark SQL
6.1Spark SQL原理和实现
6.1.1Spark SQL简介
6.1.2Spark SQL运行架构
6.1.3Hive在Spark上的使用
6.1.4源码解析SQL语句和HiveQL语句的执行过程
6.2Spark SQL的操作实例
6.2.1文本文件操作以及DSL操作
6.2.2Parquet文件以及JSON文件操作
6.2.3Hive数据操作演示(订单交易数据操作)
6.2.4Spark SQL处理交通数据实战
思考题
第7章Spark Streaming
7.1Spark Streaming运行原理
7.1.1Spark Streaming简介
7.1.2编程模型DStream
7.1.3容错和持久化
7.1.4性能调优
7.1.5监控应用
7.2源码解析Spark Streaming的运行过程
7.2.1StreamingContext初始化并启动
7.2.2数据接收
7.2.3数据处理
7.3Spark Streaming操作实例演示
7.3.1文本数据操作实例演示
7.3.2网络数据操作实例——销售模拟器演示
7.3.3有状态(Stateful)操作实例演示
7.3.4Window操作实例演示
7.3.5SparkStreaming处理多源数据实战
思考题
第8章Spark GraphX
8.1图的定义和应用
8.1.1图的定义
8.1.2图的应用
8.2Spark GraphX简介
8.2.1弹性分布式属性图
8.2.2Spark GraphX图的切分和存储策略
8.2.3Spark GraphX图的操作
8.3Spark GraphX架构
8.3.1Pregel图计算框架
8.3.2Spark GraphX的实现
8.3.3Spark GraphX图算法的实现方法
8.4Spark GraphX图操作实例
8.4.1基于Spark GraphX的属性图的操作实例
8.4.2Spark GraphX图算法操作实例
思考题
第9章MLlib
9.1机器学习简介
9.1.1机器学习的定义
9.1.2机器学习的分类
9.1.3机器学习的常用算法
9.2MLlib的简介
9.2.1什么是MLlib
9.2.2MLlib的架构
9.2.3MLlib的数据类型
9.2.4MLlib的算法
9.3MLlib常用算法操作实践
9.3.1K-Means算法解析和实践
9.3.2协同过滤算法分析和案例实践
思考题