Spark内核深度剖析

一、相关的组件以及名词

    1、Application

    2、spark-submit

    3、Driver

    4、DAGscheduler

    5、taskscheduler

    6、Master

    7、worker

    9、exector

    10、task

    11、shufflemaptask and resulttask

二、各个组件执行流程如下

    1、我们通过spark-submit提交我们的Application。

    2、在提交完成之后会在我们的本地启动Driver进程,这个进程会创建一个sparkContext对象,它在初始化的时候会初始化很多相关的配置,其中一个是DAGscheduler还有一个是taskscheduler

    3、taskscheduler在初始化完成之后会用自己的后台进程去连接Master,向master注册application

    4、Master在接收到taskscheduler的请求时候,会利用自己的资源调度算法,为application启动exector

    5、Master通知worker启动exector,在worker启动之后会反向注册到taskscheduler上去,到此为止sparkContext初始化完成

    6、开始执行我们的代码,按照我们的逻辑,在代码中每遇到一个action就会创建一个job

    7、把job提交给DAGscheduler,DAGscheduler把job划分为不同的stage,每一个stage创建一个taskset把它提交给taskscheduler

    8、taskscheduler接收到taskset之后,将每一个task提交到exector上去执行

    9、exector收到task之后会用taskrunner来封装task,然后在线程池中取出一个线程来执行task,在执行过程中会出现shufflemaptask和resulttask,只有最后一个是resulttask其他都是shufflemaptask

三、示意图

    

猜你喜欢

转载自blog.csdn.net/Milkcoffeezhu/article/details/79994266
今日推荐