SparkCore——详述Spark作业调度

前言

我们在之前的博客中讲过,TaskScheduler负责每个具体任务的实际物理调度,DAGScheduler负责将作业拆分成为不停阶段的具体有依赖关系的多批任务,可以理解为DAGScheduler负责任务的逻辑调度。
本篇博客,结合这段时间看过的一些书籍,南国在这里重点回顾一下Spark中作业调度的相关知识。

作业调度的顶层逻辑概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作业调度的具体工作流程

作业调度的基本流程如下图所示:
在这里插入图片描述
在这里插入图片描述

调度阶段的拆分

在这里插入图片描述
构建一个新的Stage,这个新的Stage的输出结果的分区方式,则由ShuffleDependency中的Partition对象就决定。

调度阶段的提交

在这里插入图片描述
在这里插入图片描述
此外,每完成一次DAGSchduler的事件循环,也会触发一次从等待和失败列表中扫描并提交Stage的调用过程。

任务集的提交

在这里插入图片描述

完成状态的监控

简单来说,这是通过对外(主要是对TaskSchduler)暴露一系列的回调函数来实现的。对于TaskScheduler来说,这些回调函数主要包括任务的开始结束失败、任务集的失败,DAGSchduler根据这些任务的生命周期进一步维护作业和调度阶段的状态信息。

任务结果的获取

在这里插入图片描述
在这里插入图片描述

调度池和调度模式分析

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值