《大数据技术丛书 Spark技术内幕 深入解析Spark内核架构设计与实现原理》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:张安站著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111509646
  • 页数:202 页
图书介绍:Spark是不断壮大的大数据分析解决方案家族中备受关注的新增成员。它不仅为分布式数据集的处理提供一个有效框架,而且以高效的方式处理分布式数据集。它支持实时处理、流处理和批处理,提供了All in One的统一解决方案,使得Spark极具竞争力。本书以源码为基础,深入分析Spark内核的设计理念和架构实现,系统讲解各个核心模块的实现,为性能调优、二次开发和系统运维提供理论支持;本文最后以项目实战的方式,系统讲解生产环境下Spark应用的开发、部署和性能调优。

第1章 Spark简介 1

1.1 Spark的技术背景 1

1.2 Spark的优点 2

1.3 Spark架构综述 4

1.4 Spark核心组件概述 5

1.4.1 Spark Streaming 5

1.4.2 MLlib 6

1.4.3 Spark SQL 7

1.4.4 GraphX 8

1.5 Spark的整体代码结构规模 8

第2章 Spark学习环境的搭建 9

2.1 源码的获取与编译 9

2.1.1 源码获取 9

2.1.2 源码编译 10

2.2 构建Spark的源码阅读环境 11

2.3 小结 15

第3章 RDD实现详解 16

3.1 概述 16

3.2 什么是RDD 17

3.2.1 RDD的创建 19

3.2.2 RDD的转换 20

3.2.3 RDD的动作 22

3.2.4 RDD的缓存 23

3.2.5 RDD的检查点 24

3.3 RDD的转换和DAG的生成 25

3.3.1 RDD的依赖关系 26

3.3.2 DAG的生成 30

3.3.3 Word Count的RDD转换和DAG划分的逻辑视图 30

3.4 RDD的计算 33

3.4.1 Task简介 33

3.4.2 Task的执行起点 33

3.4.3 缓存的处理 35

3.4.4 checkpoint的处理 37

3.4.5 RDD的计算逻辑 39

3.5 RDD的容错机制 39

3.6 小结 40

第4章 Scheduler模块详解 41

4.1 模块概述 41

4.1.1 整体架构 41

4.1.2 Scheduler的实现概述 43

4.2 DAGScheduler实现详解 45

4.2.1 DAGScheduler的创建 46

4.2.2 Job的提交 48

4.2.3 Stage的划分 49

4.2.4 任务的生成 54

4.3 任务调度实现详解 57

4.3.1 TaskScheduler的创建 57

4.3.2 Task的提交概述 58

4.3.3 任务调度具体实现 61

4.3.4 Task运算结果的处理 65

4.4 WordCount调度计算过程详解 72

4.5 小结 74

第5章 Deploy模块详解 76

5.1 Spark运行模式概述 76

5.1.1 local 77

5.1.2 Mesos 78

5.1.3 YARN 82

5.2 模块整体架构 86

5.3 消息传递机制详解 87

5.3.1 Master和Worker 87

5.3.2 Master和Client 89

5.3.3 Client和Executor 91

5.4 集群的启动 92

5.4.1 Master的启动 92

5.4.2 Worker的启动 96

5.5 集群容错处理 98

5.5.1 Master异常退出 98

5.5.2 Worker异常退出 99

5.5.3 Executor异常退出 101

5.6 Master HA实现详解 102

5.6.1 Master启动的选举和数据恢复策略 103

5.6.2 集群启动参数的配置 105

5.6.3 Curator Framework简介 106

5.6.4 ZooKeeperLeaderElectionAgent的实现 109

5.7 小结 110

第6章 Executor模块详解 112

6.1 Standalone模式的Executor分配详解 113

6.1.1 SchedulerBackend创建AppClient 114

6.1.2 AppClient向Master注册Application 116

6.1.3 Master根据AppClient的提交选择Worker 119

6.1.4 Worker根据Master的资源分配结果创建Executor 121

6.2 Task的执行 122

6.2.1 依赖环境的创建和分发 123

6.2.2 任务执行 125

6.2.3 任务结果的处理 128

6.2.4 Driver端的处理 130

6.3 参数设置 131

6.3.1 spark.executor.memory 131

6.3.2 日志相关 132

6.3.3 spark.executor.heartbeatInterval 132

6.4 小结 133

第7章 Shuffle模块详解 134

7.1 Hash Based Shuffle Write 135

7.1.1 Basic Shuffle Writer实现解析 136

7.1.2 存在的问题 138

7.1.3 Shuffle Consolidate Writer 139

7.1.4 小结 140

7.2 Shuffle Pluggable框架 141

7.2.1 org.apache.spark.shuffle.ShuffleManager 141

7.2.2 org.apache.spark.shuffle.ShuffleWriter 143

7.2.3 org.apache.spark.shuffle.ShuffleBlockManager 143

7.2.4 org.apache.spark.shuffle.ShuffleReader 144

7.2.5 如何开发自己的Shuffle机制 144

7.3 Sort Based Write 144

7.4 Shuffle Map Task运算结果的处理 148

7.4.1 Executor端的处理 148

7.4.2 Driver端的处理 150

7.5 Shuffle Read 152

7.5.1 整体流程 152

7.5.2 数据读取策略的划分 155

7.5.3 本地读取 156

7.5.4 远程读取 158

7.6 性能调优 160

7.6.1 spark.shuffle.manager 160

7.6.2 spark.shuffle.spill 162

7.6.3 spark.shuffle.memoryFraction和spark.shuffle.safetyFraction 162

7.6.4 spark.shuffle.sort.bypassMergeThreshold 163

7.6.5 spark.shuffle.blockTransferService 163

7.6.6 spark.shuffle.consolidateFiles 163

7.6.7 spark.shuffle.compress和spark.shuffle.spill.compress 164

7.6.8 spark.reducer.maxMbInFlight 165

7.7 小结 165

第8章 Storage模块详解 167

8.1 模块整体架构 167

8.1.1 整体架构 167

8.1.2 源码组织结构 170

8.1.3 Master和Slave的消息传递详解 173

8.2 存储实现详解 181

8.2.1 存储级别 181

8.2.2 模块类图 184

8.2.3 org.apache.spark.storage.DiskStore实现详解 186

8.2.4 org.apache.spark.storage.MemoryStore实现详解 188

8.2.5 org.apache.spark.storage.TachyonStore实现详解 189

8.2.6 Block存储的实现 190

8.3 性能调优 194

8.3.1 spark.local.dir 194

8.3.2 spark.executor.memory 194

8.3.3 spark.storage.memoryFraction 194

8.3.4 spark.streaming.blockInterval 195

8.4 小结 195

第9章 企业应用概述 197

9.1 Spark在百度 197

9.1.1 现状 197

9.1.2 百度开放BMR的Spark 198

9.1.3 在Spark中使用Tachyon 199

9.2 Spark在阿里 200

9.3 Spark在腾讯 200

9.4 小结 201