Flink态管理器配置
除了MemoryStateBackend不需要显示配置外,其他两种状态管理器都需要配置才能使用。Flink中有两种级别的StateBackend配置:
- 应用层面配置:配置状态管理器只对当前应用有效,又称单任务配置;
- 集群级别配置:配置对整个集群上所有应用有效,又称全局配置。
1 应用层面配置(单任务配置)
StreamExecutionEnvironment的setStateBackend()
方法配置状态管理器。
env.setStateBackend(new FsStateBackend("hdfs://namenode:40010/flink/checkpoints"));
注意这种方式会覆盖全局配置。
2 集群级别配置(全局配置)
全局配置通过flink-conf.yaml设置全局配置,具体参数如下:
state.backend
设置state backend类型,可选值包括 jobmanager (MemoryStateBackend), filesystem (FsStateBackend), rocksdb (RocksDBStateBackend)。state.checkpoints.dir
设置checkpoints数据和元数据文件存储路径。
配置示例:
# The backend that will be used to store operator state checkpoints
state.backend: filesystem
# Directory for storing checkpoints
state.checkpoints.dir: hdfs://namenode:40010/flink/checkpoints