介绍
什么是statebackend?
- statebackend是用于存储state的状态后端,StateBackend 默认是保存在 JobManager 的内存中,也能够保存在 本地文件系统 或者 HDFS 分布式文件系统中。
什么是checkpoint?
- 是每个一段时间存储当前数据流状态的快照。可以认为是当前state的快照。
1.13后对statebackend和checkpoint的功能区分
1.13 之前 statebackend
在 Flink 中,State Backend 有两个功能:
- 提供状态的访问、查询;
- 如果开启了 Checkpoint,会周期向远程的 Durable storage 上传数据和返回元数据 (meta) 给 Job Manager (以下简称 JM)。
Flink 1.13 中两个概念被拆开:
- State Backend 的概念变窄,只描述状态访问和存储;
-
Checkpoint storage,描述的是 Checkpoint 行为,如 Checkpoint 数据是发回给 JM 内存还是上传到远程。所以,相对应的配置项也被拆开 。
statebackend
- HashMapStateBackend() : 存储在taskmanager内存
- EmbeddedRocksDbStateBackend(): 存储在rockesdb中
checkpointStorage
- JobManagerCheckpointStorage() : jobmanager内存
- JobManagerCheckpointStorage("file://path"): jobmanager本地文件
- FileSystemCheckpointStorage(): filesystem中(oss、hdfs等)
备注:配置具体方式:https://www.modb.pro/db/331091
参考:https://flink-learning.org.cn/article/detail/3d7ccd2f4d8800f748859ef6ba1e6b55