介绍
在 Flink On YARN Per-Job 集群模式下,flink cancel 是官方推荐的任务优雅关闭命令,可以安全终止流式/批处理作业,并正常释放 YARN 资源。
不同于 yarn application -kill 暴力杀掉容器,flink cancel 会通知 Flink 作业正常退出,是企业生产环境标准关闭方式之一。
Per-Job 模式
- 一个 Flink 任务 = 一个 YARN Application
- 任务运行在 YARN 远端,不在本地
- 直接使用
flink cancel <jobId>无法找到任务 - 必须指定目标集群为 YARN
正确命令格式
标准 cancel 命令(企业通用)
flink cancel -m yarn-cluster -yid <ApplicationID> <JobID>
参数说明:
-m yarn-cluster:指定目标为 YARN 集群-yid <ApplicationID>:指定 YARN 应用 ID(必须)<JobID>:Flink 任务 ID
例子
查看运行中 Flink 任务的yarn id
yarn web页面方式
访问yarn web 网页 http://hadoop2:8088/
命令方式
yarn application -list
执行结果如下图:
红框1、2、3表示正在运行的flink任务的 yarn id
获取flink任务id
启动flink命令窗口
提交任务的窗口,如下图:
flink web
命令查看
flink list -m yarn-cluster -r -yid application_1776496927536_0008
关于该命令详见 链接
执行结果:
红框处是任务id
执行 cancel 关闭任务
flink cancel -m yarn-cluster -yid application_1776496927536_0005 072133fdc47c521dd2a94bc11e9b647f
执行结果如下图,说明成功停止:
总结
- Per-Job 模式下
flink cancel必须指定-m yarn-cluster -yid - 这是生产环境优雅、规范的关闭方式
- 客户端断开、JobID 失效时,统一使用
yarn application -kill - 合理使用
cancel可保证任务安全退出、资源及时释放、不影响其他业务





