
image.png
介紹
什么是statebackend?
- statebackend是用于存儲state的狀態(tài)后端,StateBackend 默認(rèn)是保存在 JobManager 的內(nèi)存中,也能夠保存在 本地文件系統(tǒng) 或者 HDFS 分布式文件系統(tǒng)中。
什么是checkpoint?
- 是每個一段時間存儲當(dāng)前數(shù)據(jù)流狀態(tài)的快照。可以認(rèn)為是當(dāng)前state的快照。
1.13后對statebackend和checkpoint的功能區(qū)分
1.13 之前 statebackend

image.png
在 Flink 中,State Backend 有兩個功能:
- 提供狀態(tài)的訪問、查詢;
- 如果開啟了 Checkpoint,會周期向遠(yuǎn)程的 Durable storage 上傳數(shù)據(jù)和返回元數(shù)據(jù) (meta) 給 Job Manager (以下簡稱 JM)。
Flink 1.13 中兩個概念被拆開:

image.png
- State Backend 的概念變窄,只描述狀態(tài)訪問和存儲;
-
Checkpoint storage,描述的是 Checkpoint 行為,如 Checkpoint 數(shù)據(jù)是發(fā)回給 JM 內(nèi)存還是上傳到遠(yuǎn)程。所以,相對應(yīng)的配置項(xiàng)也被拆開 。
image.png
statebackend
- HashMapStateBackend() : 存儲在taskmanager內(nèi)存
- EmbeddedRocksDbStateBackend(): 存儲在rockesdb中
checkpointStorage
- JobManagerCheckpointStorage() : jobmanager內(nèi)存
- JobManagerCheckpointStorage("file://path"): jobmanager本地文件
- FileSystemCheckpointStorage(): filesystem中(oss、hdfs等)
備注:配置具體方式:https://www.modb.pro/db/331091
參考:https://flink-learning.org.cn/article/detail/3d7ccd2f4d8800f748859ef6ba1e6b55
