大发快乐8_大发快乐8官网

Spark修炼之道(高级篇)——Spark源码阅读:第四节 Stage划分

时间:2020-01-08 02:47:44 出处:大发快乐8_大发快乐8官网

从上图中可不不需要 都看,RDD G与RDD F间的依赖是宽依赖,好多好多 RDD F与 RDD G被划分为不同的Stage,而RDD G 与 RDD 间为窄依赖,或者 RDD B 与 RDD G被划分为同兩个 多多Stage。通过你这种 递归的调用土依据,将所有RDD进行划分。

再跳到getShuffleMapStage土依据,可不不需要 都看如下代码:

跳到getParentStagesAndId土依据中可不不需要 都看如下代码:

这里重点关注newResultStage土依据,具体代码如下

今天亲们先来看一下怎样进行Stage划分。下图给出的是对应Spark应用多线程 代码生成的Stage。它的具体划分土依据是根据RDD的依赖关系进行,在遇到宽依赖时将兩个 多多RDD划分为不同的Stage。

跳到getParentStages土依据中,可不不需要 都看下面的代码:

在上一节中亲们讲了 Spark Job的提交,在该讲中亲们提到,当rdd触发action操作以前,会调用SparkContext的runJob土依据,最后调用的DAGScheduler.handleJobSubmitted土依据完成整个job的提交。或者DAGScheduler根据RDD的lineage进行Stage划分,再生成TaskSet,由TaskScheduler向集群申请资源,最终在Woker节点的Executor多线程 中执行Task。

Stage整体划分的逻辑讲清楚了,在下一节中亲们将介绍submitStage及submitWaitingStages土依据进行Stage的提交。

热门

热门标签