Flink 状态管理

一、状态

流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件,并且根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发出告警。有状态的计算则会基于多个事件输出结果。例如,计算过去一小时的平均温度。以及在一分钟之内收到两个相差20度以上的温度读数,则发出告警。

上图中输入数据由黑条表示。无状态流处理每次只转换一条输入记录,并且仅根据最新的输入记录输出结果(白条)。有状态流处理维护所有已处理记录的状态值,并根据每条新输入的记录更新状态,因此输出记录(灰条)反映的是综合考虑多个事件之后的结果

  • 状态由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态;
  • 可以认为状态就是一个本地变量,可以被任务的业务逻辑访问;
  • Flink 会进行状态管理,包括状态一致性、故障处理以及高校存储和访问,以便开发人员可以专注于应用程序的逻辑;

二、状态的类型

2.1 算子状态

  • 算子状态的作用范围限定为算子任务,由同一并行任务所处理的所有数据都可以访问到相同的状态;
  • 状态对于同意子任务而言是共享的;
  • 算子状态不能由相同或不同算子的另一个子任务访问;

列表状态(List state)

  • 将状态表示为一组数据的列表

联合列表状态(Union list state)

  • 也将状态表示为数据的列表。它与常规列表状态的区别在于发生故障时,从保存点启动应用程序时如何恢复

广播状态(Broadcast state)

  • 如果一个算子有多项任务,而它的每项任务状态又相同,那么这种特殊情况最适合应用广播状态。

2.2 键控状态

  • 键控状态是根据输入数据流中定义的键(key)来维护和访问的;
  • Flink 为每一个 key 维护一个状态实例,并将具有相同键的所有数据都分区到同一个算子任务中,这个任务会维护和处理这个 key 对应的状态;
  • 当任务处理一条数据时,它会自动将状态的访问范围限定为当前数据的key;

值状态(Value state)

  • 将状态表示为单个的值

列表状态(List state)

  • 将状态表示为一组数据的列表

映射状态(Map state)

  • 将状态表示为一组 Key-Value 对

聚合状态(Reducing state & Aggregating state)

  • 将状态表示为一个用于聚合操作的列表

状态后端

状态的存储、访问以及维护,由一个可插入的组件决定,这个组件就叫做状态后端(state backend),状态后端主要负责两件事:本地的状态管理,以及将检查点(checking)状态写入远程存储。

状态后端分类

MemoryStateBackend

  • 内存级的状态后端,会将键控状态作为内存中的对象进行管理,将它们存储在 TaskManager 的 JVM 堆上,而将 checkpoint 存储在 JobManager 的内存中;
  • 特点:快速、低延迟、但不稳定;

FsStateBackend

  • 将 checkpoint 存到远程的持久化文件系统上,而对于本地状态,则跟 MemoryStateBackend 一样,也会存在 TaskManager 的 JVM 堆上;
  • 同时用于内存级的本地访问速度和更好的容错保证;

RocksDBStateBackend

  • 将所有状态序列化后,存入本地的 RocksDB 中存储;
相关推荐
小五传输1 小时前
消防总队信创改造实践:国产文件传输服务器解决文件传输难题
大数据·运维·安全
flyinsono1 小时前
连锁宠物医院怎么管?杏聆荟系统实现多店高效协同
大数据·宠物
Sayai1 小时前
Elasticsearch 9 安装验证实战:start-local 一键部署 + Docker 手动安装踩坑指南
大数据·elasticsearch·docker
智恒百亿1 小时前
8 卡 RTX 5090 服务器深度实测:256GB 显存能否支撑 70B 模型微调?选型参考
大数据·运维·服务器·人工智能
TDengine (老段)7 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
智购科技自动贩卖机9 小时前
自动售货机嵌入式状态机设计实战:从45个事件源到层次型状态机的工程重构
大数据·人工智能·stm32·物联网·重构·硬件架构
乐迪信息9 小时前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
Raas1009 小时前
MAI Gateway(魔芋企业级AI网关)对比分析:AI网关和API网关区别?企业级能力差距一览
大数据·人工智能·数据挖掘·mai gateway·企业级产品
Neighbor_OldY10 小时前
云上安全配置审计与误配置修复实战:从安全组、OSS、RAM到数据库的全栈排查复盘
大数据·运维·安全·云计算
工业甲酰苯胺11 小时前
AI低代码破局:制造业数智转型落地实战
大数据·人工智能·低代码·制造