V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
winchang
V2EX  ›  Spark

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

  •  1
     
  •   winchang · 2022-08-13 14:46:43 +08:00 · 1305 次点击
    这是一个创建于 861 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    3 ,Partition 为何如此的重要

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

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

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

    6 条回复    2024-09-30 17:34:34 +08:00
    winchang
        1
    winchang  
    OP
       2022-08-14 19:17:20 +08:00
    接下准备集成 rpc 部分,因为并行计算是 rdd 的核心特性; cache 和 checkpoint 也很重要,但可以看成是优化的部分。
    1 ,官方在 2.0 时弃用了 akka ,所以也将不依赖这个库
    2 ,本着理解核心逻辑,周边逻辑不考虑(例如 metrics )
    winchang
        2
    winchang  
    OP
       2022-08-24 18:49:42 +08:00
    又来更新了,通过这一阵时间的理解,算是吃透了 spark rpc 的实现( netty 本身不算哈)。
    核心是理解 Dispatcher+MessageLoop+(Inbox/Outbox),项目已经集成了 Inbox 的特性,持续更新中...
    winchang
        3
    winchang  
    OP
       2022-08-27 23:19:54 +08:00
    update ,完整实现了 rpc 模块,可独立运行
    winchang
        4
    winchang  
    OP
       2022-09-01 18:39:08 +08:00
    Update, 实现了 cluster 模式,支持一个 Driver 进程,多个 Executor 进程运行;
    基本达成预设目标,开心一下😄
    shiyanfei5
        5
    shiyanfei5  
       2022-10-25 22:22:09 +08:00
    厉害!
    alisdlyc
        6
    alisdlyc  
       82 天前
    666
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:11 · PVG 19:11 · LAX 03:11 · JFK 06:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.