大发UU直播快三官方_大发UU直播快3

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

时间:2019-12-28 02:51:28 出处:大发UU直播快三官方_大发UU直播快3

再跳到getShuffleMapStage措施 ,并能看多如下代码:

今天大家先来看一下怎样才能进行Stage划分。下图给出的是对应Spark应用多多系统进程 代码生成的Stage。它的具体划分措施 是根据RDD的依赖关系进行,在遇到宽依赖时将4个 RDD划分为不同的Stage。

Stage整体划分的逻辑讲清楚了,在下一节中大家将介绍submitStage及submitWaitingStages措施 进行Stage的提交。

跳到getParentStagesAndId措施 中并能看多如下代码:

从上图中并能看多,RDD G与RDD F间的依赖是宽依赖,就说RDD F与 RDD G被划分为不同的Stage,而RDD G 与 RDD 间为窄依赖,有时候 RDD B 与 RDD G被划分为同4个 Stage。通过这俩 递归的调用措施 ,将所有RDD进行划分。

跳到getParentStages措施 中,并能看多下面的代码:

在上一节中大家讲了 Spark Job的提交,在该讲中大家提到,当rdd触发action操作时候,会调用SparkContext的runJob措施 ,最后调用的DAGScheduler.handleJobSubmitted措施 完成整个job的提交。有时候DAGScheduler根据RDD的lineage进行Stage划分,再生成TaskSet,由TaskScheduler向集群申请资源,最终在Woker节点的Executor多多系统进程 中执行Task。

这里重点关注newResultStage措施 ,具体代码如下

热门

热门标签