Flink Working Directory(FLIP-198)稳定本地恢复、RocksDB 目录与进程重启“不丢缓存”的正确姿势

1. Working Directory 是什么

Flink 支持为JobManager/TaskManager 进程配置一个工作目录,用来存储进程重启后可复用的信息。前提是:

  • 进程重启时“身份不变”(resource-id 不变)
  • 重启后还能访问到同一个磁盘/卷(working dir 所在路径不变、可写)

工作目录结构:

  • JM:<WORKING_DIR_BASE>/jm_<JM_RESOURCE_ID>
  • TM:<WORKING_DIR_BASE>/tm_<TM_RESOURCE_ID>

其中<WORKING_DIR_BASE>process.working-dir(或进程级别的process.jobmanager.working-dir/process.taskmanager.working-dir)控制。

2. Working Directory 里会放哪些东西(为什么它很关键)

Flink 进程会把这些工件放到 working directory:

  • BlobServer / BlobCache 的 Blobs(用户 jar、依赖、分发工件)
  • Local state(当你开启state.backend.local-recovery时)
  • RocksDB 的工作目录(RocksDB 状态、sst、log 等本地文件)

它的核心价值在于:
当 TaskManager 进程崩了并被拉起时,如果 working dir 还在且 resource-id 一致,Flink 可以复用本地 state,减少从远端 checkpoint 拉取的成本。

3. 与 io.tmp.dirs 的关系:不要再让它“随机漂移”

如果你不显式配置process.working-dir,它默认会从io.tmp.dirs随机挑一个目录当 base。
这在开发环境无所谓,但生产上非常危险:

  • io.tmp.dirs往往是多个路径(甚至是临时盘)
  • “随机挑选”意味着重启后可能落到不同路径
  • 本地可恢复工件不再可复用(等于没配)

结论:
生产上强烈建议显式设置process.working-dir(至少对 TM 设置),并确保它在稳定大盘上。

4. 最小可用配置:让本地恢复真正生效(FLIP-201)

要实现“跨进程重启的本地恢复”,你必须同时满足三点:

1)开启 local recovery

state.backend.local-recovery:true

2)TaskManager 的 resource-id 必须是确定的(不能每次启动都随机)

taskmanager.resource-id:TaskManager_1

3)TaskManager 重启后必须使用同一个 working directory(同路径同盘)

推荐配置模板(生产常用):

# 1) 明确指定 working dir base(不要依赖 io.tmp.dirs 的随机选择)process.working-dir:/data/flink/working# 2) 分别指定 JM/TM(可选:更精细的磁盘规划)process.jobmanager.working-dir:/data/flink/workingprocess.taskmanager.working-dir:/data/flink/working# 3) 开启本地恢复state.backend.local-recovery:true# 4) TaskManager 固定身份(每个 TM 实例必须唯一)taskmanager.resource-id:tm-01

注意:taskmanager.resource-id的值必须对每个 TM 实例唯一,例如tm-01/tm-02/...

5. 生产部署怎么保证 resource-id 唯一且“重启不变”

5.1 单机多 TM(同一台机器跑多个 TaskManager)

你需要为每个 TM 进程分配固定且不同的 resource-id,并且要保证它们的 working dir 不互相覆盖。最稳妥做法:

  • 每个 TM 一个 systemd service(或 supervisor 配置)
  • service 文件里注入不同的taskmanager.resource-id

示例思路(不贴 systemd 全文,重点是参数):

  • conf/flink-conf.yaml不写死taskmanager.resource-id

  • 用启动命令动态注入:

    • ./bin/taskmanager.sh start -D taskmanager.resource-id=tm-01
    • ./bin/taskmanager.sh start -D taskmanager.resource-id=tm-02

5.2 多机每机一个 TM(最常见)

每台机器写一个固定值即可,比如用 hostname 映射:

  • worker1:tm-worker1
  • worker2:tm-worker2

同样推荐用启动脚本或服务文件注入,避免镜像/安装包复制后忘改。

6. 磁盘与目录规划:Working Dir 放哪最合理

Working Directory 里包含 RocksDB 工作目录与本地 state,I/O 压力不小。建议:

  • 放在本地 SSD/NVMe(如果你用 RocksDB state backend)
  • 单独挂载点:/data/flink/working
  • 保障容量:取决于 state 大小与 local recovery 策略,一般至少预留 checkpoint state 的 1~2 倍空间(保守)

同时:

  • io.tmp.dirs依然可以用于“普通临时文件”,但不要把可恢复工件的命运交给它的随机性。

7. 常见坑位与排查办法

坑 1:resource-id 没固定,local recovery 形同虚设

现象:TM 重启后恢复仍然从远端拉,耗时不变
检查:日志中是否出现“local state found/used”类似信息;目录下是否出现tm_<id>且 id 每次变化

坑 2:working-dir 在容器临时层或会被清理的目录

现象:重启后目录不存在
解决:挂载持久卷;K8s 用 hostPath 或 PVC;裸机用固定大盘路径

坑 3:同机多 TM resource-id 冲突

现象:目录覆盖、Blob 混乱、莫名其妙 classpath/依赖问题
解决:每个 TM 的taskmanager.resource-id唯一

坑 4:磁盘满导致 RocksDB/Blob 写失败

现象:checkpoint 失败、task 崩溃、不断重启
解决:监控磁盘;working-dir 与 tmp 分开;必要时开启清理策略与外部日志采集

8. 一句话总结

  • process.working-dir是“可恢复本地工件”的基地

  • 想要跨重启复用本地 state,必须同时做到:

    • state.backend.local-recovery: true
    • taskmanager.resource-id固定且唯一
    • 重启后 working dir 路径与数据仍然存在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1209642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊露点仪品牌哪家性价比高,杭州丰控排名居前

2026年工业数字化转型加速推进,高精度、高可靠的测量仪表已成为中小流程工业企业实现工艺稳定、成本管控与智慧管理的核心基础设施。无论是气体含水量监测的露点仪、环境洁净度检测的尘埃粒子计数器,还是压力、流量、…

聊聊磷酸三钾的新应用,看看它在哪些领域有发挥空间

一、基础认知篇 问题1:磷酸三钾的性质是什么?和普通磷酸钾有什么区别? 磷酸三钾是一种无机化合物,化学式为K₃PO₄,通常以无水物或水合物形式存在,其核心性质体现在三个维度:一是强碱性,水溶液pH值可达11-13,…

mysql查询字段排序规则、数据库编码、表编码,修改排序规则

查询字段排序规则、数据库编码、表编码SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME,COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS 表字段修复#改变字段数据 字符集、排序规则 SELECTTABLE_…

盘点临沂、菏泽等地专业美妆培训学校哪家好,附学费参考

2026年美业市场持续扩容,专业美妆技能已成为年轻人就业创业、职场转型的核心竞争力之一。无论是零基础入门学美妆、技能提升对接市场需求,还是通过美妆创业实现个人价值,优质美妆培训学校的教学质量、资源整合能力直…

盘点2026年GEO搜索优化大型服务商,哪家口碑更出众?

2026年AI搜索生态持续扩张,GEO搜索优化已成为企业连接精准客群、撬动区域市场的核心杠杆——无论是本地生活商家的到店流量转化,还是工业制造企业的区域供应链对接,亦或是专业服务机构的本地案源获取,优质GEO搜索优…

2026年辨析靠谱的正规美容培训学校,山东欧曼谛美容培训学校优势凸显

在美业市场蓬勃发展的当下,选择一所靠谱的正规美容培训学校,是开启职业美容师之路的关键一步。面对市场上良莠不齐的培训选项,如何避开只教理论不教实操技术陈旧跟不上潮流的坑?以下结合行业需求与学员痛点,为你推…

聊聊口碑好的水泵减震器供应商,哪家性价比高呢

随着工业生产与民用建筑对设备静音化、稳定性需求的提升,水泵减震器作为隔离振动、降低噪音的核心部件,其供应商的选择成为企业与工程方关注的焦点。本文围绕口碑不错的水泵减震器供应商推荐一下水泵减震器生产厂家推…

MySQL查找占用CPU过高的SQL

问题现象: 数据库服务器CPU飙升。 方案一、通过pidstat命令定位 首先我们先找到mysqld进程的PID,然后执行pidstat -t -p $PID,结果如下图: 进入mysql交互命令,通过以下命令查询具体SQL。select * from performan…

污水处理设备选购参考:2026年市场主流品牌一览,进口MBR膜/疾控中心实验室污水设备,污水处理设备品牌哪家权威

随着环保政策趋严及工业废水处理需求激增,污水处理设备行业迎来技术升级与市场整合期。2026年,行业呈现“头部企业技术领跑、细分场景需求分化”的特征,采购方需兼顾设备性能、服务响应及长期成本。本文基于公开数据…

智能时代的催化剂:“AI元人文”与中国学术的自觉之路

岐金兰提出的“AI元人文”理论,在中国学术界引发的不仅仅是一个新话题的讨论,它更像一次触及研究范式、文化自觉和未来道路的深层激荡。其意义可以从以下几个层面来理解: 🧠 理论创新的范式突破 在中国学术界积极…

探讨玛瑙手镯定制的费用,多少钱能定制到心仪款式?

随着消费升级与个性化需求的崛起,玛瑙手镯定制逐渐成为玉器市场的新热点,但消费者在选择时往往面临设计同质化、品质难辨、定制流程不透明等问题。本文围绕玛瑙手镯定制的核心疑问展开解答,结合天迹缘时尚玉手镯的实…

GBase 8a 执行计划Explain介绍

本文介绍GBaase 8a数据库集群的执行计划功能。包括语法以及一些常见场景的执行计划分析。 语法 explain/desc [extanded/partitions] select …explain只能显示sql select部分的执行计划 标准输出为explain,加extande…

磷酸三钾的副作用与安全性探讨,制造企业哪家性价比高

2026年精细化工产业绿色化转型加速,磷酸三钾作为食品添加剂、工业螯合剂、农业肥料等领域的关键原料,其安全性、纯度及生产企业的合规能力直接影响下游产业的产品质量与市场信任。当前市场中,磷酸三钾制造企业数量众…

总结2026年廊坊服务不错的本地整装装修公司,富迪优势凸显

2026年家装消费需求持续升级,本地整装装修公司凭借一站式省心的服务模式,成为廊坊、石家庄等地业主装修的。无论是旧房翻新的细节把控、毛坯房的全案设计,还是别墅大宅的定制化整装,优质本地整装公司的专业能力直接…

玻璃温室生产企业选择哪家好,冠丰温室实力排名前列

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为农业生产者选型提供客观依据,助力精准匹配适配的玻璃温室合作伙伴。 TOP1 推荐:青州市冠丰温室园艺工程有限公司 推荐指数:★★★★★ | 口碑评…

讲讲AI搜索优化源头厂家怎么选,这些排名靠前的值得考虑

2026年AI搜索生态全面爆发,企业在AI大模型推荐结果中的曝光优先级直接决定获客效率与品牌竞争力。然而,市场中AI搜索优化服务商鱼龙混杂:部分厂商缺乏核心技术,仅靠伪GEO手段短期提升排名;另有厂商服务链路断裂,…

2026河北亦辰水泵减震器供应商推荐,多类型产品满足需求

在工业设备减振降噪领域,优质的减震器供应商是企业解决振动困扰、保障设备稳定运行的核心伙伴。面对市场上鱼龙混杂的减震器产品,如何选择专业可靠的供应商?以下依据不同产品类型,为你推荐2026年的减震器供应商。一…

2025年课桌椅复购率榜单,品质之选一目了然!教室灯/台灯/声光一体教室灯/教育照明,课桌椅源头厂家采购流程

当前,教育装备市场正经历从“功能满足”向“健康体验”的深度转型。课桌椅作为学生日常接触最频繁的教学设备,其复购率不仅反映产品质量,更折射出品牌对用户需求的精准把握能力。据第三方机构调研,2025年课桌椅行业…

深入解析:Java中的boolean与Boolean

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …