前言
在上一篇文章 Spark 源码 | 脚本分析总结(一) 中,我们分析了 Spark 的脚本执行流程,最终都通过 spark-class 启动 org.apache.spark.deploy.SparkSubmit,本文我们继续分析 SparkSubmit 的提交流程,看看它是如何根据不同的 clusterManager 和 deployMode 来提交应用的。
版本
Spark 3.2.3
SparkSubmit 入口
根据脚本分析,我们知道 spark-submit 最终通过 spark-class 启动 org.apache.spark.deploy.SparkSubmit,入口方法为 main:
1 | // SparkSubmit.scala |
doSubmit 方法是真正的入口:
1 | def doSubmit(args: Array[String]): Unit = { |