Spark的DAG

版权声明:版权声明中 https://blog.csdn.net/lds_include/article/details/89254158

Spark的DAG

什么是DAG

  • DAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage,对于窄依赖,partition的转换处理在Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Stage的依据。

划分stage的过程

  • 从最后一个RDD开始,调用递归算法查找该RDD后开始遍历,判断父RDD和该RDD的依赖关系,如果是宽依赖,就把父RDD和前面所有的RDD都划分成一个stage,若果是窄依赖,继续递归查找父RDD的父RDD,递归的出口是直到找不到父RDD,最后把所有的RDD统一划分一个stage
    在这里插入图片描述

举例

  • WordCount的stage个数
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lds_include/article/details/89254158
DAG
今日推荐