DAG简介
百度百科对DAG的解释用一句话概括:无回路有向图。
Spark的DAG(有向无环图)是一个基本概念,在Spark执行模型中起着至关重要的作用。DAG是“定向的”,因为操作是按特定顺序执行的,而“非循环的”是因为执行计划中没有循环或循环。这意味着每个阶段都取决于前一阶段的完成情况,并且一个阶段中的每个任务都可以独立运行。
在高层,DAG表示Spark作业的逻辑执行计划。提交Spark应用程序时,Spark会将应用程序代码中指定的高级操作(如transformation和action)转换为stage和task的DAG。
DAG在Spark中的重要性
Spark中对DAG的需求源于这样一个事实,即Spark是一个分布式计算框架,这意味着它被设计为在多台服务器组成的集群上运行。为了在集群中有效地执行Spark作业(Job),Spark需要将Job分解为更小、独立的task,这些task可以在服务器之间并行执行。
通过下面4点进行详细描述DAG在Spark中的重要性:
- DAG通过为作业提供逻辑执行计划,在这个过程中发挥着关键作用。
- DAG将Job分解为一系列Stage,其