Spark源码剖析——SparkContext的初始化_创建和启动DAGScheduler

Posted swordfall

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark源码剖析——SparkContext的初始化_创建和启动DAGScheduler相关的知识,希望对你有一定的参考价值。

6.创建和启动DAGScheduler

DAGScheduler主要用于在任务正式交给TaskSchedulerImpl提交之前做一些准备工作,包括:创建Job,将DAG中的RDD划分到不同的Stage,提交Stage,等等。创建DAGScheduler的代码如下:

技术分享图片

DAGScheduler的数据结构主要维护jobId和stageId的关系、Stage、ActiveJob、以及缓存的RDD的partitions的位置信息,见代码:

技术分享图片

DAGSchedulerEventProcessLoop能处理的消息类型,比如JobSubmitted、MapStageSubmitted、StageCancelled、JobCancelled、JobGroupCancelled、AllJobsCancelled、ExecutorAdded、ExecutorLost、BeginEvent、GettingResultEvent、completion、TaskSetFailed、ResubmitFailedStages。DAGSchedulerEventProcessLoop接受这些消息后会有不同的处理动作。DAGSchedulerEventProcessLoop的代码实现如下:

 技术分享图片

以上是关于Spark源码剖析——SparkContext的初始化_创建和启动DAGScheduler的主要内容,如果未能解决你的问题,请参考以下文章

Spark源码剖析——SparkContext

Spark实战_SparkContext原理剖析与源码分析

Spark源码剖析——SparkContext的初始化_创建任务调度器TaskScheduler

Spark源码剖析——SparkContext的初始化_TaskScheduler的启动

Spark源码剖析——SparkContext的初始化_创建和启动DAGScheduler

Spark源码剖析——SparkContext的初始化_Hadoop相关配置及Executor环境变量