书海网短评:
基于*新的Spark2.2.X版本,分为内核解密篇,商业案例篇,性能调优篇,共31章,学习过程中有任何疑问,可加入QQ群,有专业人员答疑解惑。 《Spark大数据商业实战三部曲:内核解密|商
上篇内核解密
第1章电光石火间体验Spark2.2开发实战2
1.1通过RDD实战电影点评系统入门及源码阅读2
1.1.1Spark核心概念图解2
1.1.2通过RDD实战电影点评系统案例4
1.2通过DataFrame和DataSet实战电影点评系统7
1.2.1通过DataFrame实战电影点评系统案例7
1.2.2通过DataSet实战电影点评系统案例10
1.3Spark2.2源码阅读环境搭建及源码阅读体验11
第2章Spark2.2技术及原理14
2.1Spark2.2综述14
2.1.1连续应用程序14
2.1.2新的API15
2.2Spark2.2Core16
2.2.1第二代Tungsten引擎16
2.2.2SparkSession16
2.2.3累加器API17
2.3Spark2.2SQL19
2.3.1SparkSQL20
2.3.2DataFrame和DatasetAPI20
2.3.3TimedWindow21
2.4Spark2.2Streaming21
2.4.1StructuredStreaming21
2.4.2增量输出模式23
2.5Spark2.2MLlib27
2.5.1基于DataFrame的MachineLearningAPI28
2.5.2R的分布式算法28
2.6Spark2.2GraphX29
第3章Spark的灵魂:RDD和DataSet30
3.1为什么说RDD和DataSet是Spark的灵魂30
3.1.1RDD的定义及五大特性剖析30
3.1.2DataSet的定义及内部机制剖析34
3.2RDD弹性特性七个方面解析36
3.3RDD依赖关系43
3.3.1窄依赖解析43
3.3.2宽依赖解析45
3.4解析Spark中的DAG逻辑视图46
3.4.1DAG生成的机制46
3.4.2DAG逻辑视图解析47
3.5RDD内部的计算机制49
3.5.1Task解析49
3.5.2计算过程深度解析49
3.6SparkRDD容错原理及其四大核心要点解析57
3.6.1SparkRDD容错原理57
3.6.2RDD容错的四大核心要点57
3.7SparkRDD中Runtime流程解析59
3.7.1Runtime架构图59
3.7.2生命周期60
3.8通过WordCount实战解析SparkRDD内部机制70
3.8.1SparkWordCount动手实践70
3.8.2解析RDD生成的内部机制72
3.9基于DataSet的代码到底是如何一步步转化成为RDD的78
第4章SparkDriver启动内幕剖析81
4.1SparkDriverProgram剖析81
4.1.1SparkDriverProgram81
4.1.2SparkContext深度剖析81
4.1.3SparkContext源码解析82
4.2DAGScheduler解析96
4.2.1DAG的定义96
4.2.2DAG的实例化97
4.2.3DAGScheduler划分Stage的原理98
4.2.4DAGScheduler划分Stage的具体算法99
4.2.5Stage内部Task获取最佳位置的算法113
4.3TaskScheduler解析116
4.3.1TaskScheduler原理剖析116
4.3.2TaskScheduler源码解析117
4.4SchedulerBackend解析132
4.4.1SchedulerBackend原理剖析132
4.4.2SchedulerBackend源码解析132
4.4.3Spark程序的注册机制133
4.4.4Spark程序对计算资源Executor的管理134
4.5打通Spark系统运行内幕机制循环流程135
4.6本章总结145
第5章Spark集群启动原理和源码详解146
5.1Master启动原理和源码详解146
5.1.1Master启动的原理详解146
5.1.2Master启动的源码详解147
5.1.3MasterHA双机切换157
5.1.4Master的注册机制和状态管理解密163
5.2Worker启动原理和源码详解170
5.2.1Worker启动的原理流程170
5.2.2Worker启动的源码详解174
5.3ExecutorBackend启动原理和源码详解178
5.3.1ExecutorBackend接口与Executor的关系178
5.3.2ExecutorBackend的不同实现179
5.3.3ExecutorBackend中的通信181
5.3.4ExecutorBackend的异常处理183
5.4Executor中任务的执行184
5.4.1Executor中任务的加载184
5.4.2Executor中的任务线程池185
5.4.3任务执行失败处理186
5.4.4揭秘TaskRunner188
5.5Executor执行结果的处理方式189
5.6本章总结197
第6章SparkApplication提交给集群的原理和源码详解198
6.1SparkApplication到底是如何提交给集群的198
6.1.1Application提交参数配置详解198
6.1.2Application提交给集群原理详解199
6.1.3Application提交给集群源码详解201
6.2SparkApplication是如何向集群申请资源的211
6.2.1Application申请资源的两种类型详解211
6.2.2Application申请资源的源码详解213
6.3从Application提交的角度重新审视Driver219
6.3.1Driver到底是什么时候产生的220
6.3.2Driver和Master交互原理解析238
6.3.3Driver和Master交互源码详解244
6.4从Application提交的角度重新审视Executor249
6.4.1Executor到底是什么时候启动的249
6.4.2Executor如何把结果交给Application254
6.5Spark1.6RPC内幕解密:运行机制、源码详解、Netty与Akka等254
6.6本章总结267
第7章Shuffle原理和源码详解268
7.1概述268
7.2Shuffle的框架269
7.2.1Shuffle的框架演进269
7.2.2Shuffle的框架内核270
7.2.3Shuffle框架的源码解析272
7.2.4Shuffle数据读写的源码解析275
7.3HashBasedShuffle281
7.3.1概述281
7.3.2HashBasedShuffle内核282
7.3.3HashBasedShuffle数据读写的源码解析285
7.4SortedBasedShuffle290
7.4.1概述292
7.4.2SortedBasedShuffle内核293
7.4.3SortedBasedShuffle数据读写的源码解析294
7.5TungstenSortedBasedShuffle302
7.5.1概述302
7.5.2TungstenSortedBasedShuffle内核302
7.5.3TungstenSortedBasedShuffle数据读写的源码解析303
7.6Shuffle与Storage模块间的交互309
7.6.1Shuffle注册的交互310
7.6.2Shuffle写数据的交互314
7.6.3Shuffle读数据的交互315
7.6.4BlockManager架构原理、运行流程图和源码解密315
7.6.5BlockManager解密进阶:BlockManager初始化和注册解密、BlockManager-Master工作解密、BlockTransferService解密、本地数据读写解密、远程数据读写解密324
7.7本章总结341
第8章Job工作原理和源码详解342
8.1Job到底在什么时候产生342
8.1.1触发Job的原理和源码解析342
8.1.2触发Job的算子案例344
8.2Stage划分内幕345
8.2.1Stage划分原理详解345
8.2.2Stage划分源码详解346
8.3Task全生命周期详解346
8.3.1Task的生命过程详解347
8.3.2Task在Driver和Executor中交互的全生命周期原理和源码详解348
8.4ShuffleMapTask和ResultTask处理结果是如何被Driver管理的364
8.4.1ShuffleMapTask执行结果和Driver的交互原理及源码详解364
8.4.2ResultTask执行结果与Driver的交互原理及源码详解370
第9章Spark中Cache和checkpoint原理和源码详解372
9.1Spark中Cache原理和源码详解372
9.1.1Spark中Cache原理详解372
9.1.2Spark中Cache源码详解372
9.2Spark中checkpoint原理和源码详解381
9.2.1Spark中checkpoint原理详解381
9.2.2Spark中checkpoint源码详解381
第10章Spark中Broadcast和Accumulator原理和源码详解391
10.1Spark中Broadcast原理和源码详解391
10.1.1Spark中Broadcast原理详解391
10.1.2Spark中Broadcast源码详解393
10.2Spark中Accumulator原理和源码详解396
10.2.1Spark中Accumulator原理详解396
10.2.2Spark中Accumulator源码详解396
第11章Spark与大数据其他经典组件整合原理与实战399
11.1Spark组件综合应用399
11.2Spark与Alluxio整合原理与实战400
11.2.1Spark与Alluxio整合原理400
11.2.2Spark与Alluxio整合实战401
11.3Spark与JobServer整合原理与实战403
11.3.1Spark与JobServer整合原理403
11.3.2Spark与JobServer整合实战404
11.4Spark与Redis整合原理与实战406
11.4.1Spark与Redis整合原理406
11.4.2Spark与Redis整合实战407
中篇商业案例
第12章Spark商业案例之大数据电影点评系统应用案例412
12.1通过RDD实现分析电影的用户行为信息412
12.1.1搭建IDEA开发环境412
12.1.2大数据电影点评系统中电影数据说明425
12.1.3电影点评系统用户行为分析统计实战428
12.2通过RDD实现电影流行度分析431
12.3通过RDD分析各种类型的最喜爱电影TopN及性能优化技巧433
12.4通过RDD分析电影点评系统仿QQ和微信等用户群分析及广播
背后机制解密436
12.5通过RDD分析电影点评系统实现Java和Scala版本的二次排序系统439
12.5.1二次排序自定义Key值类实现(Java)440
12.5.2电影点评系统二次排序功能实现(Java)442
12.5.3二次排序自定义Key值类实现(Scala)445
12.5.4电影点评系统二次排序功能实现(Scala)446
12.6通过SparkSQL中的SQL语句实现电影点评系统用户行为分析447
12.7通过SparkSQL下的两种不同方式实现口碑最佳电影分析451
12.8通过SparkSQL下的两种不同方式实现最流行电影分析456
12.9通过DataFrame分析最受男性和女性喜爱电影TopN457
12.10纯粹通过DataFrame分析电影点评系统仿QQ和微信、淘宝等用户群460
12.11纯粹通过DataSet对电影点评系统进行流行度和不同年龄阶段兴趣分析等462
12.11.1通过DataSet实现某特定电影观看者中男性和女性不同年龄的人数463
12.11.2通过DataSet方式计算所有电影中平均得分最高
(口碑最好)的电影TopN464
12.11.3通过DataSet方式计算所有电影中粉丝或者观看人数最多(最流行电影)的电影TopN465
12.11.4纯粹通过DataSet的方式实现所有电影中最受男性、女性喜爱的
电影Top10466
12.11.5纯粹通过DataSet的方式实现所有电影中QQ或者微信核心目标
用户最喜爱电影TopN分析467
12.11.6纯粹通过DataSet的方式实现所有电影中淘宝核心目标用户最喜爱电影TopN分析469
12.12大数据电影点评系统应用案例涉及的核心知识点原理、源码及案例代码470
12.12.1知识点:广播变量Broadcast内幕机制470
12.12.2知识点:SQL全局临时视图及临时视图473
12.12.3大数据电影点评系统应用案例完整代码474
12.13本章总结496
第13章Spark2.2实战之Dataset开发实战企业人员管理系统应用案例498









