Spark 的运行流程图挺直观的,对刚接触分布式计算的同学还蛮友好。从启动SparkContext开始,Driver 负责创建应用环境,控制节奏。资源管理器把Executor分发到各节点,执行代码就靠它们了。关键在于DAG这一步,Spark 把 RDD 之间的依赖变成一张有向无环图,Scheduler 再一层层拆分任务,Executor 跑任务、反馈结果,整个链路还挺清晰。

如果你熟悉 Hadoop、Hive 或者 HBase,再来理解 Spark 的调度流程会更轻松。它有点像 Tez 那套 DAG 思路,但更灵活,语法也舒服些。嗯,想深入了解 Executor 调度细节的,可以看看Spark Executor 分配指南,写得挺透彻。

想全面理解 Spark 的核心模块,推荐这个零基础思维导图,对spark-corespark-streamingspark-sql都覆盖到了,图也比较清晰。调试时可以配合container-executor.cfg文件调整,相关配置可以参考executor 路径

哦对了,任务拆分那块,如果你对 Tez 有了解,可以顺便看看Tez DAG 任务框架,思路类似。再复杂点的调度流程,比如批量作业调度,还可以参考Azkaban 部署方案,和 Spark 联动也挺方便。

如果你刚上手 Spark,建议先自己画一遍 DAG 图,试试自己手动拆 Stage、划分 Task。熟悉了之后再配合资源管理器看日志,问题定位会快不少。