算子状态的作用范围限定为算子任务 键控状态(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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)