开发者社区> 问答> 正文

spark中如何划分stage?

spark中如何划分stage?

展开
收起
xin在这 2021-12-06 00:58:54 418 0
1 条回答
写回答
取消 提交回答
  • 1.spark application中可以因为不同的action触发众多的job,一个Application中可以有很多job,每个job是有一个或多个stage构成的,后面的stage依赖于前面的stage,也就是说只有前面的stage计算完毕后,后面的stage才会运行。

    2.stage划分的依据是宽依赖,何时产生宽依赖,例如ReduceBykey,GroupByKey的算子,会导致宽依赖的产生。

    3.由Action算子(例如collect)导致了SparkContext.RunJob的执行,最终导致了DAGSchedular的submitJob的执行,其核心是通过发送一个case class Jobsubmitted对象给eventProcessLoop。

    EventProcessLoop是DAGSchedularEventProcessLoop的具体事例,而DAGSchedularEventProcessLoop是eventLoop的子类,具体实现EventLoop的onReceiver方法,onReceiver方法转过来回调doOnReceive。

    4.在handleJobSubmitted中首先创建finalStage,创建finalStage时候会建立父Stage的依赖链条。

    2021-12-06 00:59:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载