当前位置: 首页 > article >正文

告别混淆!一文讲透 Flink State Backend 与 Checkpoint Storage

一、引言在 Flink 1.13 版本之前StateBackend接口是一个“大杂烩”它同时负责两件事状态的本地访问与存储Task 运行时状态存在哪内存还是 RocksDBCheckpoint 数据的持久化做快照时状态备份到哪JobManager 还是 HDFS这种设计导致了概念上的混淆例如FsStateBackend运行时其实使用的是 TaskManager 的堆内存但名字却带有 Fs。为了让职责更清晰Flink 1.13 正式将这两者解耦。概念职责类比State Backend管理运行时状态的存储与访问方式相当于内存/磁盘——决定你在工作时把数据放在哪里Checkpoint Storage管理检查点快照的持久化存储位置相当于备份仓库——决定你把备份数据存到哪里二、State BackendState Backend 决定了运行时状态数据的存储介质和访问方式目前主推两种 State Backend。1.HashMapStateBackend状态以 Java 对象形式直接存储在 TaskManager 的 JVM 堆内存中读写速度最快直接内存访问无序列化/反序列化开销状态大小受限于 JVM 堆内存容量不支持增量 Checkpoint每次 Checkpoint 需要全量序列化整个状态2.EmbeddedRocksDBStateBackend状态存储在 TaskManager 本地磁盘上的嵌入式 RocksDB 实例中读写涉及序列化/反序列化Java 对象 ↔ byte[]有一定性能开销状态大小仅受限于本地磁盘容量可以管理超大规模状态TB 级别支持增量 Checkpoint基于 RocksDB SST 文件的增量上传RocksDB 的 Block Cache 和 Write Buffer 会占用 堆外内存Off-Heap3.两种StateBackend对比维度HashMapStateBackendEmbeddedRocksDBStateBackend存储介质JVM 堆内存本地磁盘RocksDB访问速度⚡ 极快直接内存访问 较慢涉及序列化 磁盘I/O状态规模上限受限于堆内存通常 GB 级受限于磁盘可达 TB 级增量 Checkpoint❌ 不支持✅ 支持内存管理JVM GC 管理Flink Managed Memory 管理典型吞吐量影响对吞吐量影响小约降低 30%~50%取决于状态访问频率适用场景小状态、高吞吐大状态、超大 Key 数量三、Checkpoint StorageCheckpoint Storage 决定了Checkpoint 快照数据的持久化位置目前主推两种 Checkpoint Storage。1.JobManagerCheckpointStorageCheckpoint 数据通过 RPC 发送至 JobManager存储在其堆内存中每个独立状态的大小上限默认为 5 MB可配置MAX_STATE_SIZE仅适用于本地开发/测试生产环境绝不应使用作业失败时如果 JobManager 也崩溃Checkpoint 数据丢失2.FileSystemCheckpointStorageCheckpoint 数据写入分布式文件系统具备高可用性和持久性小状态默认阈值 20KB仍会内联存储在_metadata文件中避免创建过多小文件生产环境唯一推荐的 Checkpoint Storage支持与 EmbeddedRocksDBStateBackend 配合实现增量 Checkpoint3.Checkpoint完整流程步骤说明涉及组件①CheckpointCoordinator 按配置的间隔周期性触发JobManager②Checkpoint Barrier 作为特殊事件插入数据流Source → 下游③多输入算子等待所有 Channel 的 Barrier 到齐对齐模式Operator④同步阶段创建状态快照的引用非常快通常 ms 级State Backend⑤异步阶段将状态数据写入持久化存储可能耗时较长Checkpoint Storage⑥TaskManager 向 JobManager 报告该算子的 Checkpoint 完成TM → JM⑦所有算子 Ack 后Checkpoint 被标记为完成JobManager四、State Backend与Checkpoint Storage关系旧版 ( 1.13已废弃)等价的新版组合 (≥ 1.13)MemoryStateBackendHashMapStateBackend JobManagerCheckpointStorageFsStateBackendHashMapStateBackend FileSystemCheckpointStorageRocksDBStateBackendEmbeddedRocksDBStateBackend FileSystemCheckpointStorage在Flink现在新版本的使用中两者结合的组合矩阵建议如下组合State BackendCheckpoint Storage适用性AHashMapStateBackendJobManagerCheckpointStorage⚠️ 仅开发/测试BHashMapStateBackendFileSystemCheckpointStorage✅ 生产推荐中小状态CEmbeddedRocksDBStateBackendJobManagerCheckpointStorage❌ 不推荐无实际意义DEmbeddedRocksDBStateBackendFileSystemCheckpointStorage✅ 生产推荐大状态以下是大多数生产环境下的推荐配置适用于大状态、高可用场景# State Backend state.backend: rocksdb state.backend.incremental: true state.backend.rocksdb.localdir: /data1/flink/rocksdb,/data2/flink/rocksdb state.backend.rocksdb.memory.managed: true state.backend.rocksdb.predefined-options: FLASH_SSD_OPTIMIZED # Checkpoint Storage state.checkpoint-storage: filesystem state.checkpoints.dir: hdfs:///flink/checkpoints state.savepoints.dir: hdfs:///flink/savepoints # Checkpoint 行为 execution.checkpointing.interval: 2min execution.checkpointing.mode: EXACTLY_ONCE execution.checkpointing.timeout: 10min execution.checkpointing.min-pause: 1min execution.checkpointing.max-concurrent-checkpoints: 1 # 保留策略 state.checkpoints.num-retained: 3 # 内存配置 taskmanager.memory.managed.fraction: 0.4

相关文章:

告别混淆!一文讲透 Flink State Backend 与 Checkpoint Storage

一、引言在 Flink 1.13 版本之前,StateBackend 接口是一个“大杂烩”,它同时负责两件事:状态的本地访问与存储(Task 运行时状态存在哪?内存还是 RocksDB?)Checkpoint 数据的持久化(做…...

实测Taotoken在多模型调用下的延迟与稳定性体感

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 实测Taotoken在多模型调用下的延迟与稳定性体感 1. 引言 在集成多个大模型API到实际业务或开发工作流时,开发者通常需…...

智慧养老平台|基于SprinBoot+vue的智慧养老平台系统(源码+数据库+文档)

智慧养老平台 目录 基于SprinBootvue的外贸平台系统 一、前言 二、系统设计 三、系统功能设计 前台 后台 管理员功能 老人功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码…...

在线课程|基于springboot+vue的在线课程管理系统(源码+数据库+文档)

在线课程管理系统 目录 基于springbootvue的在线课程管理系统 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师,…...

如何用Python快速接入Taotoken平台调用多款大模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何用Python快速接入Taotoken平台调用多款大模型 对于希望便捷使用多种大语言模型的开发者而言,逐一对接不同厂商的AP…...

仅限首批50家申请者:ElevenLabs潮州话语音定制音色内测通道开放(含潮汕非遗传承人声纹授权协议模板)

更多请点击: https://kaifayun.com 第一章:ElevenLabs潮州话语音定制音色内测计划概览 ElevenLabs 正式启动潮州话语音合成能力的定向内测,聚焦方言语音建模、声学特征保留与文化语境适配三大技术维度。本次内测面向具备潮州话母语能力的开发…...

为什么92%的ElevenLabs山东话项目上线失败?——5大隐性技术红线与3种合规替代方案(附GitHub可运行Demo)

更多请点击: https://intelliparadigm.com 第一章:山东话语音合成落地失败的行业现象与本质归因 山东话语音合成项目在政务热线、乡村广播、文旅导览等场景中频繁试点,但超76%的落地项目在6个月内被迫下线。用户反馈集中于“听不懂”“像普通…...

国密 TLCP 实战:GmSSL / OCL / Nginx 版本选型与全部调试修改说明

本文面向发布到 CSDN,汇总本人在 Windows WSL2 编译、Docker 部署、CentOS 生产环境跑通 Nginx 国密 HTTPS(TLCP) 时使用的源码版本、目录布局,以及为调通而做的全部修改(含配置、脚本、证书处理;不含对 N…...

【2026电赛国奖秘籍】别再用L298N了!无刷电机FOC(位置/速度双环)速成与避坑指南

📝 前言:为什么电赛控制类一定要懂FOC?参加过电赛控制类(如自平衡小车、双轴追光云台、风力摆、倒立摆)的同学都知道,传统的“直流有刷电机 L298N/TB6612 增量式编码器”方案在面对极低速运转和精确定位时…...

苹果手机快速开启开发者模式教程(iOS 16+)

在Mac Xcode 给 iPhone 安装自签 IPA、做苹果 App 打包测试时,iOS 16 及以上的系统第一次启动这类"非 App Store 来源"的 App,都会弹一个 “需要启用开发者模式” 的提示,点"好"就退出了,App 根本进不去。 这是苹果从 iOS 16 开始加的安全限制:任何用开发…...

体验Taotoken全球节点带来的低延迟API调用体感

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 体验Taotoken全球节点带来的低延迟API调用体感 对于需要频繁调用大模型API的开发者而言,除了模型的智能程度&#xff0…...

联想笔记本BIOS解锁终极指南:深度解析CFG Lock关闭与DVMT显存调整

联想笔记本BIOS解锁终极指南:深度解析CFG Lock关闭与DVMT显存调整 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/g…...

AMD Ryzen终极调试工具:硬件级性能调优完全指南

AMD Ryzen终极调试工具:硬件级性能调优完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.…...

终极指南:119,376个英语单词发音MP3音频一键下载完整教程 [特殊字符]

终极指南:119,376个英语单词发音MP3音频一键下载完整教程 🎧 【免费下载链接】English-words-pronunciation-mp3-audio-download Download the pronunciation mp3 audio for 119,376 unique English words/terms 项目地址: https://gitcode.com/gh_mir…...

土方车远程监控智慧运维系统方案

某企业聚焦于土方运输领域,拥有大量土方车分布于全国各大工地与矿山之间,承担土石方挖掘、装载、运输等任务。由于车辆分散作业、工作环境恶劣,总部难以实时掌握每台土方车的当前位置、载重状态及电机情况,且车辆故障频发、运维工…...

如何快速掌握uesave:Unreal引擎存档编辑的完整指南

如何快速掌握uesave:Unreal引擎存档编辑的完整指南 【免费下载链接】uesave Rust library and CLI to read and write Unreal Engine save files 项目地址: https://gitcode.com/gh_mirrors/ue/uesave uesave是一款专门用于处理Unreal引擎游戏存档文件的开源…...

RT-DETRv2训练自定义数据集的排坑全记录

RT-DETRv2训练自定义数据集的排坑全记录 最近在使用lyuwenyu/RT-DETR的PyTorch版本训练自定义缺陷检测数据集,从启动报错到成功训练,踩了不少典型的“新手坑”,这里把完整的排坑过程和解决方案整理出来,帮大家一次性避坑&#xff…...

AI设计泳装,能颠覆今夏潮流?

AI设计泳装,能颠覆今夏潮流? 夏日临近,泳装市场硝烟再起。然而,海量款式与消费者挑剔审美的矛盾日益尖锐——设计周期长、打版成本高、爆款命中率低,让无数商家深陷库存泥潭。如何破局?北京先智先行科技有限…...

冲压送料机远程监控运维管理系统方案

某设备制造商,常年向汽车零部件、电子元器件等行业客户供应各类冲压送料设备,随着市场拓展,其售后运维面临诸多突出问题。一方面,设备分布地域广泛,客户上报故障后,售后服务往往响应滞后且运维成本居高不下…...

鸿蒙PC中获取并使用DevEco Studio

鸿蒙PC中获取并使用DevEco Studio 一、前言 本文由 AtomCode 协助润色 随着鸿蒙生态的不断扩展,DevEco Studio 也推出了适配鸿蒙 PC 的预览版本。本文将详细介绍如何申请公测名额、下载安装 DevEco Studio,以及创建/导入项目并安装到鸿蒙设备。 前置条…...

在OpenClaw项目中集成Taotoken实现Agent工作流

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在OpenClaw项目中集成Taotoken实现Agent工作流 对于使用OpenClaw框架构建AI Agent的开发者而言,一个稳定、便捷的模型服…...

数据类型与变量-Part1-基础篇

C语言数据类型与变量(基础篇) 系列导航 📍 Part 1: C语言数据类型与变量(基础篇)← 你在这里🔜 Part 2: C语言内存探秘(进阶篇)🔜 Part 3: C语言输入输出格式化艺术 大家…...

网络编程入门 Python Socket 实现一个简单的用户认证系统

# Python Socket 实现一个简单的用户认证系统这次写的是一个简单的用户认证系统。整体思路是:1. 服务端负责保存和校验用户名、密码 2. 客户端负责输入用户名、密码 3. 客户端把用户输入的数据发送给服务端 4. 服务端判断用户名和密码是否正确 5. 服务端把登录结果返…...

为什么92%的Lovable新手在第5小时放弃?——资深架构师拆解3个致命认知盲区

更多请点击: https://codechina.net 第一章:Lovable应用开发入门与环境搭建 Lovable 是一个面向现代 Web 应用的轻量级全栈框架,专为快速构建可维护、可扩展且富有表现力的交互式应用而设计。它融合了声明式 UI、响应式状态管理与内置服务抽…...

【Flink学习】(五)Flink 并行度与任务链,任务运行核心原理

本文主要整理Flink 底层任务运行机制,学会合理设置并行度,初步具备任务调优思维。 一、并行度概念 并行度代表 Flink 任务运行的线程数量,决定任务处理速度,分为全局并行度、算子并行度、客户端并行度。 二、并行度设置 分为三种方…...

Windhawk终极指南:5分钟掌握Windows系统个性化定制

Windhawk终极指南:5分钟掌握Windows系统个性化定制 【免费下载链接】windhawk The customization marketplace for Windows programs: https://windhawk.net/ 项目地址: https://gitcode.com/gh_mirrors/wi/windhawk Windows系统定制一直是许多用户的痛点&am…...

Wordpress网站使用siteground security optimizer 及 translatepress多语言插件的翻译问题

问题:发现有的页面翻译出错,如下图:经排查,原因是 SiteGround 主机安全插件中的“锁定并保护系统文件夹”功能,阻止了 TranslatePress 插件的 trp-ajax.php 文件正常执行。解决方法:将 trp-ajax.php 加入白…...

3分钟彻底清理Windows系统:Win11Debloat让你的电脑重获新生

3分钟彻底清理Windows系统:Win11Debloat让你的电脑重获新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter a…...

从零训练潮州话语音克隆模型:ElevenLabs Fine-tuning实战(附1782条标注语料清洗脚本)

更多请点击: https://codechina.net 第一章:从零训练潮州话语音克隆模型:ElevenLabs Fine-tuning实战(附1782条标注语料清洗脚本) 语料准备与质量校验 潮州话语音克隆对数据一致性要求极高。我们采集并人工标注了178…...

使用Taotoken后API调用稳定性与延迟的实际体验观察

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后API调用稳定性与延迟的实际体验观察 在最近一个为期一周的后端服务开发项目中,我们将原本直接调用多个厂…...