《SPARK核心源码分析与开发实战》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:王家林,王雁军,王家虎编
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:7111528603
  • 页数:432 页
图书介绍:本书共11章。书中第1章首先通过介绍Spark的生态系统和企业应用,使读者能够快速的对Spark技术的生态环境以及Spark的应用现状有个非常直观的了解。随后第2章,通过Spark集群的安装和部署把开发环境快速的搭建起来(对于90%以上想学习Spark技术的人来说,如何搭建集群是其难点之一),方便学习者进行一些简单的实战初体验。第3章,通过Spark API编程动手实战,进一步加深对Spark技术的理解。第4章,深入分析了Spark的工作机制,尤其是Spark的作业和任务调度,是Spark学习的重点和难点。 第5章,简单介绍了运行架构,特意分析了集群默认的Spark Standalone运行架构以及目前公认的最佳的分布式集群资源管理框架YARN的原理和最佳实践。第6章到第9章,详细介绍了基于Spark内核的四大子框架,如Spark Streaming、Spark SQL、Spark GraphX的原理和实例操作,更深一步的理解Spark的“One stack to rule them all”的特性。最后,介绍最著名的分布式内存存储系统Tachyon的架构和使用以及Spark的性能调优

第1章 Spark系统概述 1

1.1 Spark是什么 2

1.2 Spark生态系统BDAS 5

1.2.1 Spark Core 5

1.2.2 Spark SQL 6

1.2.3 Spark Streaming 6

1.2.4 Spark GraphX 7

1.2.5 MLlib 7

1.2.6 Tachyon 8

1.2.7 BlinkDB 8

思考题 8

第2章 Spark安装和集群部署 9

2.1 搭建Hadoop分布式集群 10

2.1.1 安装VMware虚拟机 10

2.1.2 安装Ubuntu的镜像文件 11

2.1.3 安装JDK 17

2.1.4 搭建另外两台Ubuntu系统并配置SSH免密码登录 17

2.1.5 安装Hadoop和搭建Hadoop分布式集群 19

2.2 Spark安装和集群部署 22

2.2.1 安装Scala 22

2.2.2 安装Spark和集群部署 22

2.3 测试Spark集群 26

2.3.1 通过Spark提供的示例LocalPi测试Spark集群 26

2.3.2 通过Spark Shell测试Spark集群 27

思考题 29

第3章 Spark R…DD与Spark API编程实践 30

3.1 RDD介绍 31

3.1.1 RDD是Spark的核心抽象 31

3.1.2 RDD的特征 31

3.2 RDD的操作分类 32

3.2.1 输入操作 33

3.2.2 转换操作 35

3.2.3 行动操作 40

3.2.4 控制操作 44

3.3 Spark Shell下的Spark API编程实践 44

3.3.1 Local模式下实践map、 filter和collect方法 45

3.3.2 集群模式下实践textFile、 sortByKey和saveAstextFile方法 45

3.3.3 集群模式下实践union、 join、 reduce和lookup方法 47

3.3.4 搜狗日志数据分析实践 50

3.4 基于IntelliJ IDEA使用Spark API开发应用程序 54

3.4.1 搭建和设置IntelliJ IDEA开发环境 55

3.4.2 在IntelliJ IDEA下开发并部署Spark应用程序 58

3.4.3 使用SBT编译Spark应用程序 65

3.4.4 使用Maven构建Spark应用程序 68

3.4.5 Spark工具 70

思考题 73

第4章 Spark的运行模式 74

4.1 Spark的运行模式概览 75

4.1.1 Spark的基本工作流程 76

4.1.2 Spark应用程序部署 77

4.2 Local模式 79

4.2.1 Local模式实例部署及运行演示 79

4.2.2 Local模式内部实现原理 81

4.3 Standalone模式 84

4.3.1 Standalone模式实例部署及运行演示 84

4.3.2 Standalone模式内部实现原理 92

4.4 Yarn-Cluster模式 121

4.4.1 Yarn-Cluster模式实例部署及运行演示 121

4.4.2 Yarn-Cluster模式内部实现原理 124

4.5 Yarn-Client模式 131

4.5.1 Yam-Client模式实例部署及运行演示 131

4.5.2 Yarn-Client模式内部实现原理 132

4.6 Mesos模式 134

4.6.1 Mesos模式实例部署及运行演示 134

4.6.2 Mesos模式内部实现原理 138

思考题 138

第5章 Spark的运行机制 139

5.1 Spark集群的架构 140

5.2 Spark的作业和任务调度 141

5.2.1 Spark Application提交 142

5.2.2 作业(Job)提交 157

5.2.3 DAGScheduler划分Stage并提交 159

5.2.4 TaskScheduler提交Task 166

5.2.5 Executor运行Task并返回结果 168

5.2.6 Driver的处理 172

5.3 容错机制 174

5.3.1 Lineage机制 174

5.3.2 Checkpoint机制 175

5.4 Storage存储模块 179

5.4.1 Storage模块整体架构 180

5.4.2 缓存实现原理 184

5.4.3 缓存策略 196

5.5 Spark的消息传递机制Akka 198

5.5.1 Akka架构解析 198

5.5.2 Akka驱动下的start-all. sh源码解析 200

5.6 Shuffle机制 207

5.6.1 Shuffle的原理 207

5.6.2 Shuffle的写操作 207

5.6.3 Shuffle的读操作 210

5.7 共享变量 211

5.7.1 广播变量 211

5.7.2 累加器 217

5.8 Spark性能调优 217

5.8.1 数据序列化 217

5.8.2 内存优化 218

5.8.3 其他优化方法 221

思考题 222

第6章 Spark SQL 223

6.1 Spark SQL原理和实现 224

6.1.1 Spark SQL简介 224

6.1.2 Spark SQL运行架构 225

6.1.3 Hive在Spark上的使用 229

6.1.4 源码解析SQL语句和HiveQL语句的执行过程 232

6.2 Spark SQL的操作实例 251

6.2.1 文本文件操作以及DSL操作 251

6.2.2 Parquet文件以及JSON文件操作 255

6.2.3 Hive数据操作演示(订单交易数据操作) 258

6.2.4 Spark SQL处理交通数据实战 268

思考题 272

第7章 Spark Streaming 273

7.1 Spark Streaming运行原理 274

7.1.1 Spark Streaming简介 274

7.1.2 编程模型DStream 275

7.1.3 容错和持久化 283

7.1.4 性能调优 285

7.1.5 监控应用 287

7.2 源码解析Spark Streaming的运行过程 288

7.2.1 StreamingContext初始化并启动 289

7.2.2 数据接收 296

7.2.3 数据处理 307

7.3 Spark Streaming操作实例演示 316

7.3.1 文本数据操作实例演示 316

7.3.2 网络数据操作实例——销售模拟器演示 319

7.3.3 有状态(Stateful)操作实例演示 328

7.3.4 Window操作实例演示 332

7.3.5 SparkStreaming处理多源数据实战 338

思考题 342

第8章 Spark GraphX 343

8.1 图的定义和应用 344

8.1.1 图的定义 344

8.1.2 图的应用 345

8.2.2 Spark GraphX简介 346

8.2.1 弹性分布式属性图 346

8.2.2 Spark GraphX图的切分和存储策略 348

8.2.3 Spark GraphX图的操作 350

8.3 Spark GraphX架构 358

8.3.1 Pregel图计算框架 359

8.3.2 Spark GraphX的实现 363

8.3.3 Spark GraphX图算法的实现方法 369

8.4 Spark GraphX图操作实例 373

8.4.1 基于Spark GraphX的属性图的操作实例 373

8.4.2 Spark GraphX图算法操作实例 396

思考题 402

第9章 MLlib 403

9.1 机器学习简介 404

9.1.1 机器学习的定义 404

9.1.2 机器学习的分类 405

9.1.3 机器学习的常用算法 406

9.2 MLlib的简介 408

9.2.1 什么是MLlib 408

9.2.2 MLlib的架构 409

9.2.3 MLlib的数据类型 410

9.2.4 MLlib的算法 414

9.3 MLlib常用算法操作实践 419

9.3.1 K-Means算法解析和实践 419

9.3.2 协同过滤算法分析和案例实践 423

思考题 432