译者序
前言
引言
第一部分 Spark基础
第1章 大数据、Hadoop、Spark介绍
1.1 大数据、分布式计算、Hadoop简介
1.1.1 大数据与Hadoop简史
1.1.2 Hadoop简介
1.2 Spark简介
1.2.1 Spark背景
1.2.2 Spark的用途
1.2.3 Spark编程接口
1.2.4 Spark程序的提交类型
1.2.5 Spark应用程序的输入/输出类型
1.2.6 Spark中的RDD
1.2.7 Spark与Hadoop
1.3 Python函数式编程
1.3.1 Python函数式编程中的数据结构
1.3.2 Python对象序列化
1.3.3 Python函数式编程基础
1.4 本章小结
第2章 部署Spark
2.1 Spark部署模式
2.1.1 本地模式
2.1.2 Spark独立集群
2.1.3 基于YARN运行Spark
2.1.4 基于Mesos运行Spark
2.2 准备安装Spark
2.3 获取Spark
2.4 在Linux或Mac OS X上安装Spark
2.5 在Windows上安装Spark
2.6 探索Spark安装目录
2.7 部署多节点的Spark独立集群
2.8 在云上部署Spark
2.8.1 AWS
2.8.2 GCP
2.8.3 Databricks
2.9 本章小结
第3章 理解Spark集群架构
3.1 Spark应用中的术语
3.1.1 Spark驱动器
3.1.2 Spark工作节点与执行器
3.1.3 Spark主进程与集群管理器
3.2 使用独立集群的Spark应用
3.3 在YARN上运行Spark应用
3.3.1 ResourceManager作为集群管理器
3.3.2 ApplicationMaster作为Spark主进程
3.4 在YARN上运行Spark应用的部署模式
3.4.1 客户端模式
3.4.2 集群模式
3.4.3 回顾本地模式
3.5 本章小结
第4章 Spark编程基础
4.1 RDD简介
4.2 加载数据到RDD
4.2.1 从文件创建RDD
4.2.2 从文本文件创建RDD
4.2.3 从对象文件创建RDD
4.2.4 从数据源创建RDD
4.2.5 从JSON文件创建RDD
4.2.6 通过编程创建RDD
4.3 RDD操作
4.3.1 RDD核心概念
4.3.2 基本的RDD转化操作
4.3.3 基本的RDD行动操作
4.3.4 键值对RDD的转化操作
4.3.5 MapReduce与单词计数练习
4.3.6 连接操作
4.3.7 在Spark中连接数据集
4.3.8 集合操作
4.3.9 数值型RDD的操作
4.4 本章小结
第二部分 基础拓展
第5章 Spark核心API高级编程
5.1 Spark中的共享变量
5.1.1 广播变量
5.1.2 累加器
5.1.3 练习:使用广播变量和累加器
5.2 Spark中的数据分区
5.2.1 分区概述
5.2.2 掌控分区
5.2.3 重分区函数
5.2.4 针对分区的API方法
5.3 RDD的存储选项
5.3.1 回顾RDD谱系
5.3.2 RDD存储选项
5.3.3 RDD缓存
5.3.4 持久化RDD
5.3.5 选择何时持久化或缓存RDD
5.3.6 保存RDD检查点
5.3.7 练习:保存RDD检查点
5.4 使用外部程序处理RDD
5.5 使用Spark进行数据采样
5.6 理解Spark应用与集群配置
5.6.1 Spark环境变量
5.6.2 Spark配置属性
5.7 Spark优化
5.7.1 早过滤,勤过滤
5.7.2 优化满足结合律的操作
5.7.3 理解函数和闭包的影响
5.7.4 收集数据的注意事项
5.7.5 使用配置参数调节和优化应用
5.7.6 避免低效的分区
5.7.7 应用性能问题诊断
5.8 本章小结
第6章 使用Spark进行SQL与NoSQL编程
6.1 Spark SQL简介
6.1.1 Hive简介
6.1.2 Spark SQL架构
6.1.3 DataFrame入门
6.1.4 使用DataFrame
6.1.5 DataFrame缓存、持久化与重新分区
6.1.6 保存DataFrame输出
6.1.7 访问Spark SQL
6.1.8 练习:使用Spark SQL
6.2 在Spark中使用NoSQL系统
6.2.1 NoSQL简介
6.2.2 在Spark中使用HBase
6.2.3 练习:在Spark中使用HBase
6.2.4 在Spark中使用Cassandra
6.2.5 在Spark中使用DynamoDB
6.2.6 其他NoSQL平台
6.3 本章小结
第7章 使用Spark处理流数据与消息
7.1 Spark Streaming简介
7.1.1 Spark Streaming架构
7.1.2 DStream简介
7.1.3 练习:Spark Streaming入门
7.1.4 状态操作
7.1.5 滑动窗口操作
7.2 结构化流处理
7.2.1 结构化流处理数据源
7.2.2 结构化流处理的数据输出池
7.2.3 输出模式
7.2.4 结构化流处理操作
7.3 在Spark中使用消息系统
7.3.1 Apache Kafka
7.3.2 KafkaUtils
7.3.3 练习:在Spark中使用Kafka
展开