介紹
什么是statebackend?
- statebackend是用于存儲(chǔ)state的狀態(tài)后端捣郊,StateBackend 默認(rèn)是保存在 JobManager 的內(nèi)存中辽狈,也能夠保存在 本地文件系統(tǒng) 或者 HDFS 分布式文件系統(tǒng)中。
什么是checkpoint?
- 是每個(gè)一段時(shí)間存儲(chǔ)當(dāng)前數(shù)據(jù)流狀態(tài)的快照呛牲〉炯瑁可以認(rèn)為是當(dāng)前state的快照。
1.13后對statebackend和checkpoint的功能區(qū)分
1.13 之前 statebackend
在 Flink 中侈净,State Backend 有兩個(gè)功能:
- 提供狀態(tài)的訪問尊勿、查詢;
- 如果開啟了 Checkpoint畜侦,會(huì)周期向遠(yuǎn)程的 Durable storage 上傳數(shù)據(jù)和返回元數(shù)據(jù) (meta) 給 Job Manager (以下簡稱 JM)元扔。
Flink 1.13 中兩個(gè)概念被拆開:
- State Backend 的概念變窄,只描述狀態(tài)訪問和存儲(chǔ)旋膳;
-
Checkpoint storage澎语,描述的是 Checkpoint 行為,如 Checkpoint 數(shù)據(jù)是發(fā)回給 JM 內(nèi)存還是上傳到遠(yuǎn)程验懊。所以擅羞,相對應(yīng)的配置項(xiàng)也被拆開 。
statebackend
- HashMapStateBackend() : 存儲(chǔ)在taskmanager內(nèi)存
- EmbeddedRocksDbStateBackend(): 存儲(chǔ)在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