MemoryStateBackend 内存级的状态后端,会将键控状态作为内存中的对象进行管理,将它们存储在TaskManager的JVM堆上;而将checkpoint存储在JobManager的内存中。
env
.setStateBackend(new MemoryStateBackend())
FsStateBackend 将checkpoint存到远程的持久化文件系统(FileSystem)上。而对于本地状态,跟MemoryStateBackend一样,也会存在TaskManager的JVM堆上。
env
.setStateBackend(new FsStateBackend("file"))
RocksDBStateBackend 将所有状态序列化后,存入本地的RocksDB中存储。 注意:RocksDB的支持并不直接包含在flink中,需要引入依赖:
<dependency
>
<groupId
>org
.apache
.flink
</groupId
>
<artifactId
>flink
-statebackend
-rocksdb_2
.11</artifactId
>
<version
>1.10.0</version
>
</dependency
>
env
.setStateBackend(new RocksDBStateBackend("file",true))