DAGScheduler原理剖析和一些核心概念

1.DAG调度器. 是一个有向无环图!可以理解成是一个树的结构

       高级调度,面向阶段(stage-0,stage-1)调度。

       为每个job计算stage的DAG,跟踪哪个rdd和stage输出需要              // keeps track of which RDDs andstage outputs are materialized,

       寻找最小调度进行运行。

       以taskSet方式提交stage给底层任务调度器(实现了在集群上运行)。

       taskset包含了独立的task,可以基于集群上的数据运行,如果数据不可用,或许导致失败。

 

       在shuffle的边界过程将RDD打碎创建stage,窄依赖的RDD操作,比如map()和filter()

       在每个stage(阶段)中连同task set被放入管道中。

       shuffle依赖的操作需要多个阶段,对于每个stage,在末端,都只有一个shuffle依赖相应与另一个stage。

       实际的操作管道是在各种RDD的compute方法中执行的。

 

       DAG调度器决定了运行任务的首选位置,依赖于缓存状态和传递给Task调度器实现方法。

       处理因为shuffle数据丢失导致failure故障,重复提交old stage的。

       不是因为suffle 丢失数据导致failure,由TaskScheduler进行处理。在进行取消整个stage执行

       若干次retry。

 

2.核心概念

 

       [job]

       提交给调度器的顶层工作项。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值