Spark之DAG

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


Spark之DAG
  • 任务划分
    RDD任务切分Application、Job、Stage和Task
(1)Application:初始化一个SparkContext即生成一个Application
(2)Job:一个Action算子就会生成一个Job
(3)Stage:根据RDD之间的依赖关系的不同将Job划分成不同的Stage,遇到一个宽依赖则划分一个Stage。
Spark之DAG

Task:Stage是一个TaskSet,将Stage划分的结果发送到不同的Executor执行即为一个Task。
注意:Application->Job->Stage->Task每一层都是1对n的关系。

上一篇:Spark中的checkpoint的简单介绍


下一篇:面试系列五 之 项目涉及技术Spark