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

Flink-状态恢复-isRestore分析

isRestored 方法返回值依赖 restoredCheckpointId 是否为空:

restoredCheckpointId 在算子状态句柄(StreamOperatorStateHandler)中从 StreamOperatorStateContext 获取并赋值给 StateInitializationContext(该 context 就是 initializeState 方法中使用的 context):

StreamOperatorStateContext 在 StreamOperatorStateHandler 初始化时传入:

StreamOperatorStateContext的 checkpointId 来自 TaskStateMangerImpl:

TaskStateMangerImpl 实现中会从 jobMangerTaskRestore 中获取 checkpointId:

jobMangerTaskRestore 实例化的唯一方式是从 TaskStateMangerImpl 构造函数中构造:

submitTask 是 JM 通过 Akka 向 TM 提交 Task 执行的方法。JM 会从状态文件中获取 source 算子的状态交由 TM 执行恢复动作,checkpointId默认赋值。

任务从状态启动时(allowNonRestoredState=true),每个算子的 subTask 都具有状态:这里的状态指的是表达算子状态的 OperatorSubtaskStates 实例不会为空,只是说真正有状态算子的大小不为0,本身没状态算子的大小为0。

以 task 纬度分配状态,当开启算子链合并时,每个 task 里面包含多个算子:jobVertex 为 job 执行图的顶点:多个算子组成。

里面有两次 for 循环,外层处理单个 task,内层处理 task 再分别处理每个算子(封装为 OperatorState)。

http://www.dtcms.com/a/267165.html

相关文章:

  • 使用影刀RPA实现每日消防巡检提醒
  • 常见高危端口风险分析与防护指南
  • PostgreSQL表操作
  • Python Fabric库【系统管理工具】全面讲解
  • MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择
  • Go语言的web框架--gin
  • 【解决“此扩展可能损坏”】Edge浏览器(chrome系列通杀))扩展损坏?一招保留数据快速修复
  • 编译ADI NO-OS工程
  • 【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用
  • 数据可视化:图表选择与Python实战指南
  • 大数据在UI前端的应用探索:基于用户行为分析的产品优化策略
  • error C2338: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
  • 【Modern C++ Part3】Understand-decltype
  • 百度文心一言ERNIE-4.5-0.3B-PT开源大模型本地私有化部署
  • 2025使用VM虚拟机安装配置Macos苹果系统下Flutter开发环境保姆级教程--上篇
  • LDO功率管采用P管还是N管
  • LeetCode 第89题:格雷编码
  • CppCon 2018 学习:Scripting at the Speed of Thought Using Lua in C++ with sol3
  • 高频交易服务器篇
  • 鸿蒙学习笔记
  • 【单片机毕业设计17-基于stm32c8t6的智能倒车监测系统】
  • android studio 配置硬件加速 haxm
  • Java 大视界 -- Java 大数据在智能安防周界防范系统中的智能感知与自适应防御(333)
  • elementui表格增加搜索功能
  • ✨ OpenAudio S1:影视级文本转语音与语音克隆Mac整合包
  • 2025使用VM虚拟机安装配置Macos苹果系统下Flutter开发环境保姆级教程--中篇
  • Ubuntu:Mysql服务器
  • 用户中心Vue3网页开发(1.0版)
  • 类图+案例+代码详解:软件设计模式----适配器模式
  • HarmonyOS学习3---ArkUI