黑色压缩包的《Spark 核心思想与源码》,是我最近翻到的一个还挺实用的学习资料。讲真,Spark 这玩意儿,刚接触的时候真挺绕,这份文档就像老司机带你绕过那些坑,从核心理念到源码细节,讲得比较清楚。

弹性分布式数据集(RDD)的机制讲得透彻。用大白话说,数据可以“分片”存在多个节点,坏了还能自动恢复,不用你手动干预,挺省心的。rdd.map()这种操作就能并发跑,效率也不错。

还有DAG 执行模型,怎么把任务拆成多个小块(Stage、Task),再让它们各跑各的,调度也比较智能。你看着像一堆job在跑,背后却是个有向无环图,调度系统就靠它做优化。

内存计算数据 locality也提得比较细。像persist(StorageLevel.MEMORY_ONLY)这类用法,能把数据留在内存里,下次用就不需要从头再读磁盘,挺适合跑迭代任务的。

文档里还有对Executor 和 Driver的剖析,尤其是它们怎么协作、怎么调度,源码得蛮深入。比如 Executor 负责干活,Driver 负责分配任务,你用spark-submit跑程序的时候,其实整个流程都串起来了。

哦对了,像Spark SQL的部分也没落下。讲了怎么从 SQL 转成 DAG、DataFrameDataset到底怎么跑的,想写查询但又想兼顾性能的朋友可以重点看看这一节。

如果你最近在研究 Spark,或者准备上手写点复杂逻辑,这份资料还蛮值得下下来细读下的。注意哦,是压缩包,记得解压再打开 PDF。