Tag - "Yarn"

2026

TL;DR

本文基于 Flink 1.20 源码,梳理 yarn-application 模式下一个任务从提交到运行起来的完整过程。

重点会放在这几件事上:

  • 命令是怎么启动的
  • Client 侧到底做了什么
  • Yarn 上的 ApplicationMaster / JobManager 是怎么启动的
  • TaskManager 是怎么向 Yarn 申请并拉起的
  • 用户 main()JobGraph 生成、submitJob() 分别发生在哪个角色里

为了避免范围过大,本文只聚焦 run-application -t yarn-application 这条主链路,不展开 Web 提交、Session 模式以及 SQL Gateway。

以一个最常见的启动命令为例:

1
2
3
4
5
6
7
./bin/flink run-application \
  -t yarn-application \
  -Djobmanager.memory.process.size=2048m \
  -Dtaskmanager.memory.process.size=4096m \
  -c com.example.WordCount \
  /path/to/job.jar \
  arg1 arg2