DAG的生成

1、有向无环图

DAG(Directed Acyclic Graph)叫做有向无环图,是一种不包含有向环的有向图。

2、DAG的创建

DAG描述多个RDD的转换过程,任务执行时,可以按照DAG的描述,执行真正的计算;
DAG是有边界的:
开始(通过sparkcontext创建的RDD),
结束(触发action,调用runjob就是一个完整的DAG形成了,一旦触发action,就形成了一个完整的DAG);
一个RDD描述了数据计算过程中的一个环节,而一个DAG包含多个RDD,描述了数据计算过程中的所有环节;一个spark application可以包含多个DAG,取决于具体有多少个action。

3、stage划分

原始的RDD通过一系列的转换就就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage,对于窄依赖,partition的转换处理在Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Stage的依据。
DAG的生成_第1张图片

你可能感兴趣的:(Spark)