Flink 中的状态

算子状态(Operator State)

  • 算子状态的作用范围限定为算子任务

键控状态(Keyed State)

  • 根据输入数据流中定义的键(key)来维护和访问
  • 值状态(ValueState):将状态表示为单个的值
  • 列表状态(List State):将状态表示为一组数据的列表
  • 字典状态(MapState):将状态表示为一组Key-Value 对
  • 聚合状态:将状态表示为一个用于聚合操作的列表

状态后端(State Backends)

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

一、MemoryStateBackend(Default)

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

二、FsStateBackend

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

三、RocksDBStateBackend

  • 将所有状态序列化后,存入本地的RocksDB 中存储。
  • RocksDB 是一个硬盘KV 数据库,LevelDB,RocketDB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javafanwk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值