Spark Job 调度机制拆解:从 Action 算子到 Task 执行

搞 Spark 开发的同学,多多少少都会遇到这些问题:一个 Action 到底触发了几个 Job?Stage 是怎么划分的?Task 数量又是谁决定的?

这篇文章把 Spark Job 调度里的几个核心概念捋一遍,帮大家建立一个清晰的认知框架。


什么是 Job 调度

简单说,Spark 的 Job 调度就是框架底层根据 RDD 的逻辑链条,划分 Stage → 生成 Task → 提交执行的整个过程。

几个关键概念

Application

创建一个 SparkContext,就对应一个 Application。一个 Spark 程序通常就是一个 Application。

Job

大家常说"一个 Action 算子触发一个 Job",这个说法直观但不够精确,实际情况要复杂一些:

  • 有些 Action 算子会触发多个 Job,比如 take()
  • 有些 Transformation 算子也会触发 Job,比如 sortByKey(),因为它内部用了 RangePartitioner,需要先采样

准确的定义是:触发一次 sc.runJob() 就是一个 Job,本质上就是一个 DAG 运算流程。

DAG

DAG(Directed Acyclic Graph),有向无环图。它描述的是一系列 RDD 之间的转换关系,可以理解为一张"执行蓝图"。

Stage

Shuffle 为分界线,把 DAG 从整体切成若干段,每一段就是一个 Stage。

为什么要这么切?因为同一个 Stage 内的 RDD 计算逻辑,可以放在一个 Task 里流水线执行(pipeline),不需要落盘,效率最高。而一旦碰到 Shuffle,数据要重新分发,就必须断开。

Task 和 TaskSet

每个 Stage 包含一段计算逻辑,这段逻辑需要提交到集群上并行跑。每个并行执行的实例就是一个 Task ,一个 Stage 生成的这批 Task 叫做 TaskSet

几个要点:

  • 同一个 TaskSet 里所有 Task 的计算逻辑完全相同,区别只是各自负责的数据分区不同
  • TaskSet 中 Task 的数量 = 该 Stage 最后一个 RDD 的分区数
  • Task 本质上是一个类,封装了调用 RDD 迭代器 + 输出计算结果的代码

两种 Task 类型

Spark 内部的 Task 分为两种:

类型 说明
ShuffleMapTask 非最终 Stage 产生的 Task,负责把计算结果按分区规则写到本地磁盘,供下游 Stage 拉取
ResultTask 最终 Stage 产生的 Task,负责把结果返回给 Driver 或写到外部存储

整体串一遍

用一句话概括整个流程:

Action 触发 Job → Job 按 Shuffle 边界切分成多个 Stage → 每个 Stage 根据分区数生成 TaskSet → Task 提交到 Executor 上执行

理解了这个链路,再去看 Spark UI 上的 Job / Stage / Task 页面,就不会一脸懵了。


以上就是 Spark Job 调度的核心概念,东西不多但容易混淆。建议结合 Spark UI 实际跑几个任务看看,体感会更深。

相关推荐
AI周红伟7 小时前
All in Token, 移动,电信,联通,阿里,百度,华为,字节,Token石油战争,Token经济,百度要“重写”AI价值度量
大数据·人工智能·机器学习·百度·copilot·openclaw
AI周红伟7 小时前
Token经济学:AI时代的新货币战争,All in Token, 新时代的石油战争,华为,阿里,百度,字节的石油战争
大数据·人工智能·机器学习·百度·华为·copilot·openclaw
SeaTunnel14 小时前
(八)收官篇 | 数据平台最后一公里:数据集成开发设计与上线治理实战
java·大数据·开发语言·白鲸开源
IT研究所16 小时前
AI 时代下的知识管理:从 Claude 的“复盘”能力看生成式 AI价值
大数据·运维·数据库·人工智能·科技·低代码·自然语言处理
云边云科技_云网融合16 小时前
企业出海的 “数字丝绸之路“:SD-WAN 如何重构全球网络竞争力
大数据·运维·网络·人工智能
JZC_xiaozhong16 小时前
2026年深圳企业如何统一管理ERP、MES、OA权限?身份识别与访问管理高效方案
大数据·运维·自动化·企业数据安全·数据集成与应用集成·权限治理·多系统权限管理
1892280486117 小时前
NV243美光MT29F32T08GWLBHD6-24QJES:B
大数据·服务器·人工智能·科技·缓存
2601_9585484817 小时前
利川避暑民宿舒适化运营:客流增长策略深度解析
大数据
明明跟你说过17 小时前
Kafka 与 Elasticsearch 的集成应用案例深度解析
大数据·elk·elasticsearch·kafka·big data·bigdata
拾-光17 小时前
【Git】命令大全:从入门到高手,100 个最常用命令速查(2026 版)
java·大数据·人工智能·git·python·elasticsearch·设计模式