图解Spark程序运行时SparkSubmit的执行流程

在Spark的yarn-cluster运行模式下,当使用spark-submit脚本提交程序之后,会依次创建三个进程,它们分别是:SparkSubmit,ApplicationMaster和CoarseGrainedExecutorBackend,在本文中我们先分析一下SparkSubmit的生命周期:
图解Spark程序运行时SparkSubmit的执行流程
需要注意的是,Client并不是一个进程;另外虽然调用了其run方法,但是并没有创建子线程,start()方法才会创建一个子线程!
SparkSubmit的使命主要是将ApplicationMaster创建和运行所需要的参数和指令提交给YARN集群的ResourceManager。