详解spark提交流程(一)

详解spark提交流程(一)

1.spark应用程序的机器

2.shell中spark-submit脚本提交程序

3.根据选择的提交方式决定driver进程所启动节点

4.spark-submit方式为spark standalone方式,其实会通过反射的方式创建和构造一个driverActor进程

5.创建sparkContext对象

6.sparkContext再初始化的时候,其主要为创建DAGschedular以及创建TaskScheduler

7.DAGScheduler-->job的切分--->创建TaskSet

8.TaskScheduler-->TaskSet被打散

9.TaskScheduler实际上是负责通过它对应的一个后台进程,去链接Master注册这个Application

10.Master接收到Application注册过来的请求之后,会用资源调度的算法,在spark集群worker上启动多个excutor

11.excutor启动之后会反向注册到Driver上之后,Driver结束SparkContext初始化,会继续执行我们自己写的代码

12.TaskScheduler会把TaskSet里的每个task提交到右边的excutor上去执行  此处为分配算法 后续会详解

13.taskRunner-->每个线程来运行一个taskRunner

14.总结,最后整个这个spark应用程序的执行是stage分批次的作为taskSet提交到executor里面执行,每个Task针对Rdd的一个partition执行我们的算子和函数。

你可能感兴趣的:(详解spark提交流程(一))