[JiChu4]研究RocksDBStateBackend
RocksDBStateBackend.png
RocksDB 是一個 key/value 的內存存儲系統,和其他的 key/value 一樣,先將狀態放到內存中,如果內存快滿時,則寫入到磁盤中,
但需要注意 RocksDB 不支持同步的 Checkpoint,構造方法中沒有同步快照這個選項。
不過 RocksDB 支持增量的 Checkpoint,意味著并不需要把所有 sst 文件上傳到 Checkpoint 目錄,僅需要上傳新生成的 sst 文件即可。它的 Checkpoint 存儲在外部文件系統(本地或HDFS),
image.png
狀態信息存儲在 RocksDB 數據庫 (key-value 的數據存儲服務), 最終保存在本地文件中
checkpoint 的時候將狀態保存到指定的文件中 (HDFS 等文件系統)
缺點: 狀態訪問速度有所下降 優點: 可以存儲超大量的狀態信息 狀態信息不會丟失 用于: 生產,可以存儲超大量的狀態信息
StateBackend配置方式
(1)單任務調整 修改當前任務代碼 env.setStateBackend(new FsStateBackend("hdfs://namenode:9000/flink/checkpoints")); 或者new MemoryStateBackend() 或者new RocksDBStateBackend(filebackend, true);【需要添加第三方依賴】
如果使用RocksDBStateBackend方式,需要在pom.xml文件中,添加如下依賴
(2)全局調整(不建議)
修改flink-conf.yaml state.backend: filesystem state.checkpoints.dir: hdfs://namenode:9000/flink/checkpoints 注意:state.backend的值可以是下面幾種:jobmanager(MemoryStateBackend), filesystem(FsStateBackend), rocksdb(RocksDBStateBackend)
Maven
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。