V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
winchang
V2EX  ›  Spark

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

  •  1
     
  •   winchang · Aug 13, 2022 · 2557 views
    This topic created in 1365 days ago, the information mentioned may be changed or developed.

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

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

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

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

    3 ,Partition 为何如此的重要

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

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

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

    6 replies    2024-09-30 17:34:34 +08:00
    winchang
        1
    winchang  
    OP
       Aug 14, 2022
    接下准备集成 rpc 部分,因为并行计算是 rdd 的核心特性; cache 和 checkpoint 也很重要,但可以看成是优化的部分。
    1 ,官方在 2.0 时弃用了 akka ,所以也将不依赖这个库
    2 ,本着理解核心逻辑,周边逻辑不考虑(例如 metrics )
    winchang
        2
    winchang  
    OP
       Aug 24, 2022
    又来更新了,通过这一阵时间的理解,算是吃透了 spark rpc 的实现( netty 本身不算哈)。
    核心是理解 Dispatcher+MessageLoop+(Inbox/Outbox),项目已经集成了 Inbox 的特性,持续更新中...
    winchang
        3
    winchang  
    OP
       Aug 27, 2022
    update ,完整实现了 rpc 模块,可独立运行
    winchang
        4
    winchang  
    OP
       Sep 1, 2022
    Update, 实现了 cluster 模式,支持一个 Driver 进程,多个 Executor 进程运行;
    基本达成预设目标,开心一下😄
    shiyanfei5
        5
    shiyanfei5  
       Oct 25, 2022
    厉害!
    alisdlyc
        6
    alisdlyc  
       Sep 30, 2024
    666
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   904 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:45 · PVG 04:45 · LAX 13:45 · JFK 16:45
    ♥ Do have faith in what you're doing.