常驻 TM 容器是 YARN 层面的资源容器进程Yarn Session / Per-Job是 Flink 跑在 YARN 上的两种部署模式决定了 AM、TM 容器的生命周期两种模式下只要流任务在持续运行TM 容器就会常驻不退出这就是缩容时遇到的难点YARN exclude 黑名单杀不掉这些常驻容器。一、模式1. Per-Job 模式每个任务独立集群架构1 个 Job 1 个 AM 若干 TM 容器提交一个 Flink 流任务YARN 启动 AMAM 申请 TM 容器容器启动后常驻持续消费 Kafka 等流数据。关联关系任务存在 → TM 容器常驻任务stop/cancel→ AM 和所有 TM 容器一起释放消失。特点任务之间资源隔离。A 任务挂了不影响其他任务。缩容只需要对这个 job 执行flink stop jobId任务停掉TM 容器全部释放。2. Yarn Session 模式共享集群架构先启动一个长驻 Session AM预先申请一批 TM 容器常驻之后多个 Job 提交到这个 Session 集群里Session AM 是常驻进程TM 容器预先启动、长期常驻提交 Job 后Job 跑在这批已经存在的 TM 容器上Job 停止TM 容器不一定销毁继续等待接收新 Job。关联关系Job 只是跑在常驻 TM 里的计算逻辑Job stop 之后TM 容器还留在 YARN 节点上不会自动释放只有当整个 Session AM 被 cancel 之后这批常驻 TM 容器才会全部释放。这就是 Yarn Session 缩容最麻烦的点就算里面所有 job 都 stop 了TM 容器还占着 NM 资源。3. 对比总结表模式TM 容器什么时候创建TM 容器什么时候释放常驻特点Per-Job提交 Job 时 AM 向 YARN 申请Job stop/cancel 完成立刻销毁 TMJob 运行期间 TM 常驻任务停容器消失Yarn Session启动 Session 集群的时候一次性申请cancel 整个 Session AM才会销毁 TMTM 容器长期常驻Job 启停不销毁容器4. 核心关联缩容场景重点常驻 TM 容器不是独立任务是资源载体。不管 Session 还是 Per-Job流任务运行时TM 容器都是常驻运行不会执行完就退出批任务才会跑完释放。Per-Job任务生命周期 ≈ TM 容器生命周期。停 jobTM 就释放。Yarn SessionJob 生命周期 和 TM 容器生命周期是分离的。停止 Session 内所有 JobJob 不再运行但 TM 容器还留在 NM 节点YARN 上容器依旧存在必须额外 cancel Session AM这批常驻 TM 才会全部释放。 所以下线 NM 节点如果上面是 Yarn Session 集群 ① flink list 查出所有 JobID ② 逐个 flink stop jobId保存状态 ③ 全部 job 停止后还要 cancel Session ApplicationId才能把常驻 TM 容器全部释放yarn node -status才会看到 Containers0。二、精简版常驻 TM 容器是 YARN 上的资源进程流任务运行时 TM 就常驻。Per-Job 模式一个 Job 对应一套 AMTMJob 停止TM 容器跟着释放。Yarn Session 模式先启动常驻的 Session AM 和一批常驻 TM 容器多个 Job 共享这批 TM。Job 停止TM 容器不会销毁仍然常驻在 NM 节点。只有取消整个 Session 集群TM 容器才会全部释放。 所以缩容 NM 节点时如果是 Yarn Session仅仅 stop 内部所有 job 不够最后还需要 cancel Session释放常驻 TM 容器否则节点还有运行中的容器不能直接下线。三、高频QAQ为什么批任务不会有常驻 TM 的问题AFlink 批任务任务计算完成之后TM 容器自动退出释放资源流任务是无限流持续消费所以 TM 容器常驻。Q如果 NM 节点上是 Yarn Session只 stop 所有 job不 cancel session直接把 NM 加入 yarn exclude 会怎么样A黑名单只能阻止新容器调度。老的常驻 TM 容器还在节点运行。此时下架 / 停 NMTM 进程被杀死Session 集群异常后续提交到这个 Session 的 Job 都会失败。
企业数字化 ERP 产品动态
相关推荐
为什么 AI 写数据要先分级?R0-R5 工具风险模型 上一篇讲了「Runtime over Prompt:为什么 System Prompt 不是安全边界」——安全边界要落在 Tool 真正执行之前。这一篇往深一层:边界既然落在执行路径上,Runtime 凭什么判断一个 Tool 该不该放行?
AI 真正让企业犹豫的ÿ… · 2026/9/24 17:33:53
Unicode与UTF-8编码深度解析:rune、字节与国际化 Unicode与UTF-8编码深度解析:rune、字节与国际化为什么"hello"是5个字符,"你好"也是2个字符,但len("你好")却是6?为什么用range遍历字符串不会乱码,用下标访问却会?本文从Un… · 2026/9/24 17:33:47
Go方法集规则深度解析:值接收者与指针接收者 Go方法集规则深度解析:值接收者与指针接收者在Go开发中,方法接收者使用值类型还是指针类型是一个高频面试题,也是实际开发中最容易踩坑的地方。本文从Go规范的方法集规则出发,结合interface赋值、嵌入字段、方法调用等实际场景&am… · 2026/9/24 17:33:47
asd asd sad sad asd · 2026/9/24 18:12:16
Python本地人脸识别签到系统:可部署、可调试、可交付 简介:本资源是一个基于Python实现的轻量级GUI人脸识别签到系统,面向人工智能初学者、高校课程设计学生及中小型考勤场景开发者,解决传统签到效率低、易代签等问题。压缩包共20个文件(95KB),含6个核心Python… · 2026/9/24 18:12:10
Python NBA球员数据可视化实战:从抓取清洗到交互大屏 简介:基于Python的NBA球员数据可视化分析项目,是一份面向毕业设计、期末大作业的高分参考实现。项目由学长手写并获导师高度认可,代码附有详细注释,即使刚接触Python的新手也能快速理解逻辑并部署运行。资源共20个文件,… · 2026/9/24 18:12:10
基于Python与OpenCV的人脸识别门禁系统开发实战 简介:这是一套基于Python的人脸识别智能小区门禁管理系统源码,面向Python学习者、计算机专业学生及安防系统开发者,用于解决小区出入身份验证与门禁自动化管理问题。资源包共101个文件,大小约12.17MB,文件类型涵盖.py源… · 2026/9/24 18:12:03
随机森林在锂离子电池剩余寿命预测中的实用教程 简介:基于Python随机森林模型的锂离子电池剩余寿命预测项目资料,面向机器学习入门与进阶人群,适用于毕业设计、课程设计、大作业或工程实训。资源在调研阶段深入比较了锂离子电池剩余寿命预测的常用方法,对机器学习模型与传统物理… · 2026/9/24 18:12:03
用随机森林预测锂离子电池剩余寿命:从数据到部署的完整指南 简介:面向锂电池寿命预测研究的Python随机森林项目资料,涵盖从电池充放电数据整理到剩余寿命回归预测的完整流程,适合高校学生用于毕设、课程设计或初期工程实践,也适合希望了解随机森林在工业数据上应用的新手按需学习。压缩包共… · 2026/9/24 18:12:03
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44