前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark系列课程-00xxSpark任务调度疑问,生成有向无环图的这个东西叫什么名字?

Spark系列课程-00xxSpark任务调度疑问,生成有向无环图的这个东西叫什么名字?

作者头像
Albert陈凯
发布2018-04-08 10:41:35
9730
发布2018-04-08 10:41:35
举报
文章被收录于专栏:Albert陈凯Albert陈凯

下面我们一起来看一下Spark的任务调度

Spark任务调度.png

首先最左边的叫做RDD Object就是一个一个的RDD对象 一个一个的RDD对象,可以组成一个有向无环图 一个有向无环图,我们也可以把他叫做一个Application应用程序 有向无环图用代码来表示,他就是一个应用程序

image.png

疑问,生成有向无环图的这个东西叫什么名字?

然后他把DAG传给了一个叫做DAGScheduler的一个东西 DAGScheduler是一个对象,他是任务调度的一个高层调度器

DAGScheduler这个对象他有什么作用? 我们看下边

image.png

DAGScheduler干的第一件事就是把DAG给切割了, 那他把DAG切割成什么了?切割成一个个Stage了 他那切割Stage依据的是什么?依据RDD之间的宽窄依赖

然后他又以StaskSet的形式提交给TaskScheduler

image.png

TaskScheduler我们叫做是——Spark任务调度的底层调度器

TaskSet和Stage有什么区别呢? 没有区别, Stage我们说他是有一组可以并行计算的task TaskSet看他的名字就知道他是一些Task的集合, 只不过封装的对象不一样而已。

刚刚我们都说的是提交,但实际上,是调用了TaskScheduler的一个方法,把TaskSet当做参数传递进来了。

然后TaskScheduler会遍历TaskSet这个集合 拿到每一个Task之后,他会把这些Task发送到每一个计算节点当中去。 计算节点我们叫什么?叫做Executor TaskScheduler会遍历TaskSet里面的每一个Task,然后把Task提交到Executor中的线程池中去。 Executor中执行的Task的执行状态,会向TaskScheduler来反馈 Task是有可能会失败的,在线程池中执行,是有可能会失败的对吧?

如果Task运行失败,TaskScheduler是负责失败重试,TaskScheduler会把失败的任务,重新发送给Executor默认重试发送3次, 如果3次依然失败,那么这个Task所在的Stage就失败了 如果Stage失败了怎么办? 由DAGScheduler负责重新发送Stage,重试次数是4次,如果重试提交Stage4次依然还是失败的话 整个Job就失败了,如果job失败了,他整个Application就失败了。

TaskScheduler除了能重新发送失败的task 还能处理落后的task,如果TaskScheduler发现落后的Task

我们总结一下TaskScheduler

  1. launch Task
  2. retry failed 3.Straggling Task
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.07.14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 疑问,生成有向无环图的这个东西叫什么名字?
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档