有多种方式的提交,如Repl提交,rest的提交,本地提交等。spa
submit过程,在master节点提交jar包,在分配task的时候将jar包和参数里的依赖包路径等在子节点下载,最后执行task。rest
master在调度到LaunchDriver事件时才真正开始执行jar包的main方法,执行spark程序。事件
main-> LauchDriver-> rdd.compute()方法->dagSchedule.submitJob—> JobSubmmitted事件 –> finalStage –> submitStage –> submitMissingStage –> ......it
例如StandaloneRestServerspark
handleSubmit方法,发送DeployMessages.RequestSubmitDriver消息给masterast
示例代码见spark-launch和spark-core的相关代码。在deploy和launch两个目录中。下载