作者:十一喵先森

链接:https://juejin.im/post/5e1c414fe51d451cad4111d1

来源:掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

对上文的总结

Spark 任务调度概述

一个Spark应用程序包括Job、Stage以及Task三个概念:

 Job是以Action方法为界,遇到一个Action方法则触发一个Job;

 Stage是Job的子集,以RDD宽依赖(即Shuffle)为界,遇到Shuffle做一次划分;

 Task是Stage的子集,以并行度(分区数)来衡量,分区数是多少,则有多少个task。

Spark的任务调度总体来说分两路进行,一路是Stage级的调度,一路是Task级的调度,

Spark Stage级调度

Job由saveAsTextFile触发,该Job由RDD-3和saveAsTextFile方法组成,根据RDD之间的依赖关系从RDD-3开始回溯搜索,直到没有依赖的RDD-0,在回溯搜索过程中,RDD-3依赖RDD-2,并且是宽依赖,所以在RDD-2和RDD-3之间划分Stage,RDD-3被划到最后一个Stage,即ResultStage中,RDD-2依赖RDD-1,RDD-1依赖RDD-0,这些依赖都是窄依赖,所以将RDD-0、RDD-1和RDD-2划分到同一个Stage,即ShuffleMapStage中,实际执行的时候,数据记录会一气呵成地执行RDD-0到RDD-2的转化。不难看出,其本质上是一个深度优先搜索算法。

一个Stage是否被提交,需要判断它的父Stage是否执行,只有在父Stage执行完毕才能提交当前Stage,如果一个Stage没有父Stage,那么从该Stage开始提交。

总结:

stage调度算法:从前往后.

Spark Task 级调度

TaskScheduler支持两种调度策略,一种是FIFO,也是默认的调度策略,另一种是FAIR

FIFO: 先来先到;

FAIR: 根据优先级来调度.

失败重试与黑名单机制

对于失败的Task,会记录它失败的次数,如果失败次数还没有超过最大重试次数,那么就把它放回待调度的Task池子中,否则整个Application失败。

黑名单记录Task上一次失败所在的Executor Id和Host,以及其对应的“拉黑”时间,“拉黑”时间是指这段时间内不要再往这个节点上调度这个Task了。

最新文章

  1. css3 动画效果 总结 不断完善~~
  2. Codevs 1229 数字游戏
  3. Asp.Net网页头部动态加载标题、描述、关键字、css和js文件的方法
  4. 为Unity项目生成文档(二)
  5. Apache Shiro(安全框架)
  6. Leetcode: strStr()
  7. 转:Android ViewPager多页面滑动切换以及动画效果
  8. [原]Android开发环境搭建
  9. Linux内核之内存管理(4)--缺页处理程序
  10. 论try/catch的重要性,我们经常遇到代码出现无法调试的错误,程序退出的时候崩溃。这跟我们代码日常保护的习惯息息相关。
  11. Ubuntu(Linux) + mono + jexus +asp.net MVC3
  12. YII 常用路径总结
  13. 未能加载文件或程序集 Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0 解决 亲测
  14. ANDROID基础ACTIVITY篇之Activity的加载模式
  15. Ruby学习之动态调用
  16. java 面试题整理(不定期更新)
  17. 数据结构与STL容器
  18. come on! linux install JDK9.0.1
  19. python 判断变量是否存在 防止报错
  20. mysql查询优化之四:优化特定类型的查询

热门文章

  1. 使用pdfFactory隐藏文档中的隐私信息
  2. 在FL Studio编曲软件中查找采样的音高
  3. Docker-maven-plugin + Dockerfile + Arthas实现应用诊断
  4. csust T1097 “是时候表演真正的技术了” 题解(虚点跑最短路)
  5. LaTeX中的数学公式之多行公式
  6. 【刷题笔记】DP优化-单调队列优化
  7. fist-第九天冲刺随笔
  8. IdentityServer4系列 | 快速搭建简易项目
  9. 【2014广州市选day1】JZOJ2020年9月12日提高B组T4 字符串距离
  10. 【进阶之路】定时任务调用平台xxl-job