真的深入了解开源项目是动手实现--《Spark Core 精简版》

2022-08-13 14:46:43 +08:00
 winchang

看了许利杰老师的这本书,老师在理论层面讲的比较清楚了,读起来也容易理解,但看完但总是感觉还差点什么。于是动手起了个项目,定了个小目标:实现 RDD 的逻辑。

目前 RDD 的 MVP 已经完成,最大的收获是彻底理解了几个费解的问题:

1 ,Stage 的切分原理,为什么要这么做

2 ,Shuffle 是如何实现的,write/read 是如何衔接

3 ,Partition 为何如此的重要

有兴趣的同学一起 github 交个朋友吧,项目地址 https://github.com/changzhiwin/spark-core-analysis ,特点:

1 ,聚焦在 RDD 层面(这是 Spark 的根本)

2 ,入门明确,代码量小(保留逻辑),容易上手运行(运行起来,理解代码就容易了)

1027 次点击
所在节点    Spark
5 条回复
winchang
2022-08-14 19:17:20 +08:00
接下准备集成 rpc 部分,因为并行计算是 rdd 的核心特性; cache 和 checkpoint 也很重要,但可以看成是优化的部分。
1 ,官方在 2.0 时弃用了 akka ,所以也将不依赖这个库
2 ,本着理解核心逻辑,周边逻辑不考虑(例如 metrics )
winchang
2022-08-24 18:49:42 +08:00
又来更新了,通过这一阵时间的理解,算是吃透了 spark rpc 的实现( netty 本身不算哈)。
核心是理解 Dispatcher+MessageLoop+(Inbox/Outbox),项目已经集成了 Inbox 的特性,持续更新中...
winchang
2022-08-27 23:19:54 +08:00
update ,完整实现了 rpc 模块,可独立运行
winchang
2022-09-01 18:39:08 +08:00
Update, 实现了 cluster 模式,支持一个 Driver 进程,多个 Executor 进程运行;
基本达成预设目标,开心一下😄
shiyanfei5
2022-10-25 22:22:09 +08:00
厉害!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872615

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX