DAG有向无环图

本文介绍了DAG(有向无环图)在Spark中的应用,阐述了其作为解决Hadoop MapReduce局限性的关键。DAG用于描述计算逻辑,优化计算计划,减少数据shuffle。DAGScheduler将operator graph划分为调度阶段(Stage),Task Scheduler根据Stage启动任务。RDD依赖关系分为窄依赖和宽依赖,影响Stage划分。

DAG,全称 Directed Acyclic Graph, 中文为:有向无环图。在 Spark 中, 使用 DAG 来描述我们的计算逻辑。

基础概念

介绍DAGScheduler中的一些概念,有助于理解后续流程。
作业(Job) 调用RDD的一个action,如count,即触发一个Job,spark中对应实现为ActiveJob,DAGScheduler中使用集合activeJobs和jobIdToActiveJob维护Job
调度阶段(Stage ) 代表一个Job的DAG,会在发生shuffle处被切分,切分后每一个部分即为一个Stage,Stage实现分为ShuffleMapStage和ResultStage,一个Job切分的结果是0个或多个ShuffleMapStage加一个ResultStage
任务(Task )最终被发送到Executor执行的任务,和stage的ShuffleMapStage和ResultStage对应,其实现分为ShuffleMapTask和ResultTask

DAG概述

DAG 是一组顶点和边的组合。顶点代表了 RDD, 边代表了对 RDD 的一系列操作。
DAG Scheduler 会根据 RDD 的 transformation 动作(算子),将 DAG 分为不同的 stage,每个 stage 中分为多个 task,这些 task 可以并行运行。

在这里插入图片描述

DAG解决问题

DAG 的出现主要是为了解决 Hadoop MapReduce 框架的局限性。
主要有两个:
1、每个 MapReduce 操作都是相互独立的,HADOOP不知道接下来会有哪些Map Reduce。
2、每一步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值