上篇 内核解密
第1章 电光石火间体验Spark 2.2开发实战 2
1.1 通过RDD实战电影点评系统入门及源码阅读 2
1.1.1 Spark核心概念图解 2
1.1.2 通过RDD实战电影点评系统案例 4
1.2 通过DataFrame和DataSet实战电影点评系统 7
1.2.1 通过DataFrame实战电影点评系统案例 7
1.2.2 通过DataSet实战电影点评系统案例 10
1.3 Spark 2.2源码阅读环境搭建及源码阅读体验 11
第2章 Spark 2.2技术及原理 14
2.1 Spark 2.2综述 14
2.1.1 连续应用程序 14
2.1.2 新的API 15
2.2 Spark 2.2 Core 16
2.2.1 第二代Tungsten引擎 16
2.2.2 SparkSession 16
2.2.3 累加器API 17
2.3 Spark 2.2 SQL 19
2.3.1 Spark SQL 20
2.3.2 DataFrame和Dataset API 20
2.3.3 Timed Window 21
2.4 Spark 2.2 Streaming 21
2.4.1 Structured Streaming 21
2.4.2 增量输出模式 23
2.5 Spark 2.2 MLlib 27
2.5.1 基于DataFrame的Machine Learning API 28
2.5.2 R的分布式算法 28
2.6 Spark 2.2 GraphX 29
第3章 Spark的灵魂:RDD和DataSet 30
3.1 为什么说RDD和DataSet是Spark的灵魂 30
3.1.1 RDD的定义及五大特性剖析 30
3.1.2 DataSet的定义及内部机制剖析 34
3.2 RDD弹性特性七个方面解析 36
3.3 RDD依赖关系 43
3.3.1 窄依赖解析 43
3.3.2 宽依赖解析 45
3.4 解析Spark中的DAG逻辑视图 46
3.4.1 DAG生成的机制 46
3.4.2 DAG逻辑视图解析 47
3.5 RDD内部的计算机制 49
3.5.1 Task解析 49
3.5.2 计算过程深度解析 49
3.6 Spark RDD容错原理及其四大核心要点解析 57
3.6.1 Spark RDD容错原理 57
3.6.2 RDD容错的四大核心要点 57
3.7 Spark RDD中Runtime流程解析 59
3.7.1 Runtime架构图 59
3.7.2 生命周期 60
3.8 通过WordCount实战解析Spark RDD内部机制 70
3.8.1 Spark WordCount动手实践 70
3.8.2 解析RDD生成的内部机制 72
3.9 基于DataSet的代码到底是如何一步步转化成为RDD的 78
第4章 Spark Driver启动内幕剖析 81
4.1 Spark Driver Program剖析 81
4.1.1 Spark Driver Program 81
4.1.2 SparkContext深度剖析 81
4.1.3 SparkContext源码解析 82
4.2 DAGScheduler解析 96
4.2.1 DAG的定义 96
4.2.2 DAG的实例化 97
4.2.3 DAGScheduler划分Stage的原理 98
4.2.4 DAGScheduler划分Stage的具体算法 99
4.2.5 Stage内部Task获取最佳位置的算法 113
4.3 TaskScheduler解析 116
4.3.1 TaskScheduler原理剖析 116
4.3.2 TaskScheduler源码解析 117
4.4 SchedulerBackend解析 132
4.4.1 SchedulerBackend原理剖析 132
4.4.2 SchedulerBackend源码解析 132
4.4.3 Spark程序的注册机制 133
4.4.4 Spark程序对计算资源Executor的管理 134
4.5 打通Spark系统运行内幕机制循环流程 135
4.6 本章总结 145
第5章 Spark集群启动原理和源码详解 146
5.1 Master启动原理和源码详解 146
5.1.1 Master启动的原理详解 146
5.1.2 Master启动的源码详解 147
5.1.3 Master HA双机切换 157
5.1.4 Master的注册机制和状态管理解密 163
5.2 Worker启动原理和源码详解 170
5.2.1 Worker启动的原理流程 170
5.2.2 Worker启动的源码详解 174
5.3 ExecutorBackend启动原理和源码详解 178
5.3.1 ExecutorBackend接口与Executor的关系 178
5.3.2 ExecutorBackend的不同实现 179
5.3.3 ExecutorBackend中的通信 181
5.3.4 ExecutorBackend的异常处理 183
5.4 Executor中任务的执行 184
5.4.1 Executor中任务的加载 184
5.4.2 Executor中的任务线程池 185
5.4.3 任务执行失败处理 186
5.4.4 揭秘TaskRunner 188
5.5 Executor执行结果的处理方式 189
5.6 本章总结 197
第6章 Spark Application提交给集群的原理和源码详解 198
6.1 Spark Application到底是如何提交给集群的 198
6.1.1 Application提交参数配置详解 198
6.1.2 Application提交给集群原理详解 199
6.1.3 Application提交给集群源码详解 201
6.2 Spark Application是如何向集群申请资源的 211
6.2.1 Application申请资源的两种类型详解 211
6.2.2 Application申请资源的源码详解 213
6.3 从Application提交的角度重新审视Driver 219
6.3.1 Driver到底是什么时候产生的 220
6.3.2 Driver和Master交互原理解析 238
6.3.3 Driver和Master交互源码详解 244
6.4 从Application提交的角度重新审视Executor 249
6.4.1 Executor到底是什么时候启动的 249
6.4.2 Executor如何把结果交给Application 254
6.5 Spark 1.6 RPC内幕解密:运行机制、源码详解、Netty与Akka等 254
6.6 本章总结 267
第7章 Shuffle原理和源码详解 268
7.1 概述 268
7.2 Shuffle的框架 269
7.2.1 Shuffle的框架演进 269
7.2.2 Shuffle的框架内核 270
7.2.3 Shuffle框架的源码解析 272
7.2.4 Shuffle数据读写的源码解析 275
7.3 Hash Based Shuffle 281
7.3.1 概述 281
7.3.2 Hash Based Shuffle内核 282
7.3.3 Hash Based Shuffle数据读写的源码解析 285
7.4 Sorted Based Shuffle 290
7.4.1 概述 292
7.4.2 Sorted Based Shuffle内核 293
7.4.3 Sorted Based Shuffle数据读写的源码解析 294
7.5 Tungsten Sorted Based Shuffle 302
7.5.1 概述 302
7.5.2 Tungsten Sorted Based Shuffle内核 302
7.5.3 Tungsten Sorted Based Shuffle数据读写的源码解析 303
7.6 Shuffle与Storage 模块间的交互 309
7.6.1 Shuffle注册的交互 310
7.6.2 Shuffle写数据的交互 314
7.6.3 Shuffle读数据的交互 315
7.6.4 BlockManager架构原理、运行流程图和源码解密 315
7.6.5 BlockManager解密进阶:BlockManager初始化和注册解密、BlockManager- Master工作解密、BlockTransferService解密、本地数据读写解密、远程数据读写解密 324
7.7 本章总结 341
第8章 Job工作原理和源码详解 342
8.1 Job到底在什么时候产生 342
8.1.1 触发Job的原理和源码解析 342
8.1.2 触发Job的算子案例 344
8.2 Stage划分内幕 345
8.2.1 Stage划分原理详解 345
8.2.2 Stage划分源码详解 346
8.3 Task全生命周期详解 346
8.3.1 Task的生命过程详解 347
8.3.2 Task在Driver和Executor中交互的全生命周期原理和源码详解 348
8.4 ShuffleMapTask和ResultTask处理结果是如何被Driver管理的 364
8.4.1 ShuffleMapTask执行结果和Driver的交互原理及源码详解 364
8.4.2 ResultTask执行结果与Driver的交互原理及源码详解 370
第9章 Spark中Cache和checkpoint原理和源码详解 372
9.1 Spark中Cache原理和源码详解 372
9.1.1 Spark中Cache原理详解 372
9.1.2 Spark中Cache源码详解 372
9.2 Spark中checkpoint原理和源码详解 381
9.2.1 Spark中checkpoint原理详解 381
9.2.2 Spark中checkpoint源码详解 381
第10章 Spark中Broadcast和Accumulator原理和源码详解 391
10.1 Spark中Broadcast原理和源码详解 391
10.1.1 Spark中Broadcast原理详解 391
10.1.2 Spark中Broadcast源码详解 393
10.2 Spark中Accumulator原理和源码详解 396
10.2.1 Spark中Accumulator原理详解 396
10.2.2 Spark中Accumulator源码详解 396
第11章 Spark与大数据其他经典组件整合原理与实战 399
11.1 Spark组件综合应用 399
11.2 Spark与Alluxio整合原理与实战 400
11.2.1 Spark与Alluxio整合原理 400
11.2.2 Spark与Alluxio整合实战 401
11.3 Spark与Job Server整合原理与实战 403
11.3.1 Spark与Job Server整合原理 403
11.3.2 Spark与Job Server整合实战 404
11.4 Spark与Redis整合原理与实战 406
11.4.1 Spark与Redis整合原理 406
11.4.2 Spark与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 通过Spark SQL中的SQL语句实现电影点评系统用户行为分析 447
12.7 通过Spark SQL下的两种不同方式实现口碑最佳电影分析 451
12.8 通过Spark SQL下的两种不同方式实现最流行电影分析 456
12.9 通过DataFrame分析最受男性和女性喜爱电影TopN 457
12.10 纯粹通过DataFrame分析电影点评系统仿QQ和微信、淘宝等用户群 460
12.11 纯粹通过DataSet对电影点评系统进行流行度和不同年龄阶段兴趣分析等 462
12.11.1 通过DataSet实现某特定电影观看者中男性和女性不同年龄的人数 463
12.11.2 通过DataSet方式计算所有电影中平均得分最高
(口碑最好)的电影TopN 464
12.11.3 通过DataSet方式计算所有电影中粉丝或者观看人数最多(最流行电影)的电影TopN 465
12.11.4 纯粹通过DataSet的方式实现所有电影中最受男性、女性喜爱的
电影Top10 466
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章 Spark 2.2实战之Dataset开发实战企业人员管理系统应用案例 498
从一个完全的初学者角度来说,这套书给了我极大的信心。我过去尝试过阅读一些关于Spark的书籍,但常常因为概念过于抽象而望而却步。《Spark大数据商业实战三部曲》却让我感到异常亲切。它从最基本的数据处理需求出发,一步步引导读者理解Spark的架构和核心概念。比如,在讲解Spark Core的RDD操作时,书中通过一些生活化的比喻,将map、filter、reduceByKey等操作讲解得通俗易懂。当涉及到更高级的Spark SQL和DataFrame时,它同样延续了这种“由浅入深”的教学模式,通过实际的SQL查询和DataFrame API操作,让读者在实践中学习。让我印象深刻的是,书中关于Spark与Hadoop生态(如HDFS、Hive)的集成部分,清晰地阐述了它们之间的关系和协同工作方式,这对于我理解整个大数据技术栈非常有帮助。
评分这本书的写作风格非常接地气,完全没有那种高高在上的理论说教感。它更像是一位经验丰富的大数据架构师,在咖啡馆里和你娓娓道来,分享他的实战经验。我特别欣赏它对于“为什么”的解释,而不是简单地告诉你“怎么做”。举个例子,在讲解Spark Streaming的容错机制时,书中并没有直接给出checkpoint的配置方法,而是先详细解释了在分布式流处理场景下,数据丢失和处理失败的风险,然后才引出checkpointing作为一种可靠的解决方案,并深入探讨了其工作原理以及如何通过合理设置来实现高可用性。书中还穿插了很多关于Spark在不同行业,如金融风控、智慧物流、社交网络分析等领域的应用案例,这些案例不仅极具参考价值,也让我看到了Spark广阔的应用前景。通过这些案例,我能更直观地理解Spark的强大之处,以及它如何为企业创造实实在在的商业价值。
评分最近一直在研究大数据技术,偶然间看到了这套《Spark大数据商业实战三部曲》,虽然只看了其中一本,但着实让我眼前一亮。这本书没有像很多技术书籍那样,上来就陷入枯燥的源码分析和抽象概念的罗列,而是非常巧妙地将实际的商业场景和Spark的核心技术紧密结合。例如,书中通过一个电商平台的个性化推荐案例,层层剥开了Spark的RDD、DataFrame、Spark SQL等核心组件在实际应用中的工作原理。我尤其喜欢它讲解数据倾斜的篇幅,不是简单地给出几个调优参数,而是深入剖析了导致数据倾斜的根本原因,并结合具体的代码片段演示了如何通过join策略、shuffle优化、广播变量等多种手段来有效解决。读这本书的时候,我感觉自己不再是坐在书桌前被动学习,而是仿佛置身于一个真实的Spark开发项目中,跟着作者一步步解决实际问题,这种沉浸式的学习体验非常宝贵。对于想要将Spark技术落地到业务中的开发者来说,这本书绝对是不可多得的宝藏。
评分坦白说,我之前对Spark的理解停留在比较基础的层面,只知道它是分布式计算框架,能够处理大规模数据。但在阅读了这套书后,我对Spark的认识有了翻天覆地的变化。它不仅仅是一本技术手册,更像是一本揭示Spark“内功心法”的秘籍。书中的“性能调优”部分,简直是为我量身定做的。我一直困扰于Spark作业的性能瓶颈问题,但总是找不到头绪。《Spark大数据商业实战三部曲》中的相关章节,通过详细的解释和生动的图示,让我明白了Spark的执行计划、DAG调度、内存管理等关键环节是如何影响性能的。书中还提供了大量实用的调优技巧,比如如何选择合适的数据格式(Parquet、ORC)、如何进行数据分区、如何优化Shuffle过程、如何合理配置Executor和Memory等。我按照书中的方法实践了一段时间,发现Spark作业的执行速度确实有了显著的提升,这让我对Spark有了更深的敬畏感。
评分这本书最大的亮点在于其“商业实战”的定位。它没有停留在理论层面,而是用大量的篇幅展示了Spark如何在真实的商业环境中解决实际问题。我被书中对不同行业应用的深入剖析所吸引。例如,在金融领域,它详细讲解了如何利用Spark进行欺诈检测和风险评估;在零售行业,它展示了如何通过Spark分析用户行为,实现精准营销和库存优化。这些案例不仅展示了Spark技术的强大能力,更重要的是,它提供了一个思考的框架,让我们能够将Spark技术与具体的业务目标相结合。书中提供的代码示例也非常实用,可以直接借鉴到实际项目中,大大缩短了技术落地的周期。对于希望通过大数据技术提升业务价值的管理者和技术人员来说,这套书无疑是他们不可或缺的参考指南。
评分书够厚,凑字数太多,dataset讲的太粗糙,实例就是百度一下的那一套,没啥实际参考价值,拿来练肱二头肌不错!
评分做为工具书,用的时候翻吧,太厚了
评分篇幅洋洋洒洒,实则好货少少,白瞎花那么多钱
评分丰富的文物点点滴滴点点滴滴
评分非常不错的书,抓紧时间看书了。我
评分这是一本字典,很详细的字典!
评分看了上篇和下篇的一半左右。最大感受是重复性的话很多,源码也重复性的贴。比如讲Spark内存这块,重复地绕了几遍,本来明白的也白瞎了。如果能像《快学Scala》作者那样的态度写这本书,篇幅会少1/3~1/2是有可能的。
评分看了上篇和下篇的一半左右。最大感受是重复性的话很多,源码也重复性的贴。比如讲Spark内存这块,重复地绕了几遍,本来明白的也白瞎了。如果能像《快学Scala》作者那样的态度写这本书,篇幅会少1/3~1/2是有可能的。
评分书还不错,正在开始学习
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有