状态的存储、访问以及维护,由一个 可插入 的组件决定,这个组件就叫做 状态后端 (state backend)
状态后端主要负责两件事:
状态后端作为一个可插入的组件, 没有固定的配置, 我们可以根据需要选择一个合适 的状态后端。
Flink 提供了 3 中状态后端:
MemoryStateBackend
内存级别的状态后端
env.setStateBackend(new MemoryStateBackend( "file://"+
baseCheckpointPath, null).configure(conf, classLoader))
FsStateBackend
env.setStateBackend(new FsStateBackend(tmpPath))
RocksDBStateBackend
将所有的状态序列化之后, 存入本地的 RocksDB 数据库中.(一种 NoSql 数 据库, KV 形式存储)
env.setStateBackend(new RocksDBStateBackend("file://"+
basecheckpointPath).configure(conf,classLoader))
全局配置状态后端
在 flink-conf.yaml 文件中设置默认的全局后端
env.setStateBackend(new MemoryStateBackend());
env.setStateBackend(new FsStateBackend("hdfs://hadoop102:8020/flink/checkpoints/fs"));
如何要使用 RocksDBBackend, 需要先引入依赖:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-statebackend-rocksdb_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
env.setStateBackend(newRocksDBStateBackend("hdfs://hadoop102:8020/flink/checkpoints/rocksdb"));
以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!
联系客服