Spark 任务调度
2018-03-06 19:07
316 查看
Spark 任务调度
1. 任务调度流程图
各个RDD之间存在着依赖关系,这些依赖关系就形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了Stage的划分。DAGScheduler基于每个Stage生成TaskSet,并将TaskSet提交给TaskScheduler。TaskScheduler 负责具体的task调度,最后在Worker节点上启动task。
2. DAGScheduler
DAGScheduler对DAG有向无环图进行Stage划分。记录哪个RDD或者 Stage 输出被物化(缓存),通常在一个复杂的shuffle之后,通常物化一下(cache、persist),方便之后的计算。
重新提交shuffle输出丢失的stage(stage内部计算出错)给TaskScheduler
将 Taskset 传给底层调度器
– spark-cluster TaskScheduler
– yarn-cluster YarnClusterScheduler
– yarn-client YarnClientClusterScheduler
3. TaskScheduler
为每一个TaskSet构建一个TaskSetManager 实例管理这个TaskSet 的生命周期数据本地性决定每个Task最佳位置
提交 taskset( 一组task) 到集群运行并监控
推测执行,碰到计算缓慢任务需要放到别的节点上重试
重新提交Shuffle输出丢失的Stage给DAGScheduler
喜欢就点赞评论+关注吧
感谢阅读,希望能帮助到大家,谢谢大家的支持!
相关文章推荐
- “戏”说spark---资源调度和任务调度
- spark内核揭秘-04-spark任务调度系统个人理解
- Spark任务调度流程及调度策略分析
- spark源码之Job执行(2)任务调度taskscheduler
- Spark之任务调度(DagScheduler & TaskScheduler)
- Spark源码阅读笔记之任务调度(一)
- 【Spark篇】---Spark资源调度和任务调度
- Spark里面的任务调度:离SparkContext开始
- spark内核揭秘-04-spark任务调度系统个人理解
- Spark任务调度流程
- spark源码之Job执行(2)任务调度taskscheduler
- 深入Spark内核:任务调度(1)-基本流程
- Spark入门——3:Spark的任务调度
- Spark资源调度与任务调度(standalone模式)
- spark源码之Job执行(2)任务调度taskscheduler
- Spark2.2 任务调度机制schedule()源码剖析
- 使用azkaban调度spark任务
- spark2.2以后版本任务调度将增加黑名单机制
- 【Spark Core】从作业提交到任务调度完整生命周期浅析
- 谈谈对spark任务作业调度的一些理解