增量式Checkpoint實驗(碰到bug沒有搞定)
根據[1]:
'''這裡面的核心就是 checkpoint 機制,Flink 使用 checkpoint 機制來進行狀態保證,在 Flink 中 checkpoint 是一個定時觸發的全域性非同步快照,並持久化到持久儲存系統上(通常是分散式檔案系統)。發生故障後,Flink 選擇從最近的一個快照進行恢復。有使用者的作業狀態達到 GB 甚至 TB 級別,對這麼大的作業狀態做一次 checkpoint 會非常耗時,耗資源,因此我們在 Flink 1.3 中引入了增量 checkpoint 機制。
在增量 checkpoint 之前,Flink 的每個 checkpoint 都包含作業的所有狀態。我們在觀察到狀態在 checkpoint 之間的變化並沒有那麼大之後,支援了增量 checkpoint。增量 checkpoint 僅包含上次 checkpoint 和本次 checkpoint 之間狀態的差異(也就是“增量”)。'''
"
從 checkpoint 恢復以及效能
開啟增量 checkpoint 之後,不需要再進行其他額外的配置。如果 Job 異常,Flink 的 JobMaster 會通知所有 task 從上一個成功的 checkpoint 進行恢復,不管是全量 checkpoint 還是增量 checkpoint。每個 TaskManager 會從持久化儲存下載他們需要的狀態檔案。
儘管增量 checkpoint 能減少大狀態下的 checkpoint 時間,但是天下沒有免費的午餐,我們需要在其他方面進行捨棄。增量 checkpoint 可以減少 checkpoint 的總時間,但是也可能導致恢復的時候需要更長的時間。如果叢集的故障頻繁,Flink 的 TaskManager 需要從多個 checkpoint 中下載需要的狀態檔案(這些檔案中包含一些已經被刪除的狀態),作業恢復的整體時間可能比不使用增量 checkpoint 更長。
另外在增量 checkpoint 情況下,我們不能刪除舊 checkpoint 生成的檔案,因為新的 checkpoint 會繼續引用它們,這可能導致需要更多的儲存空間,並且恢復的時候可能消耗更多的頻寬。
關於控制便捷性與效能之間平衡的策略可以參考此文件:
https://ci.apache.org/projects/flink/flink-docs-release-1.9/ops/state/large_state_tuning.html
"
從上面兩段話也可以看出,如果頻繁故障的話,可能並不是適合採用增量check point
經過
步驟 | 內容 |
① | mvn clean scala:compile compile package |
② | nc -lk 9999 flink run -c wordcount_increstate /home/appleyuchi/桌面/Flink_Code/flink_state/checkpoint/Scala/target/datastream_api-1.0-SNAPSHOT.jar
連續4次故意輸入error來觸發job停止(模擬生產環境中的大資料框架崩潰)
before |
③ | 選擇checkpoints然後複製頁面的中間一行 |
④ | flink run -s hdfs://Desktop:9000/tmp/flinkck/df6d62a43620f258155b8538ef0ddf1b/chk-22 -c StateWordCount /home/appleyuchi/桌面/Flink_Code/flink_state/checkpoint/Scala/target/datastream_api-1.0-SNAPSHOT.jar |
⑤ | 在nc -lk 9999中輸入 after after after |
目前碰到bug:
https://blog.csdn.net/appleyuchi/article/details/108896697
暫時無法解決.
先放著.
Reference:
相關文章
- 基於 Log 的通用增量 Checkpoint
- 碰到一個latch free相關的BUG
- .NET 9 中沒有 wasi 實驗性支援
- 我沒有前端經驗,但1天就搞定了開源專案主頁前端
- 沒有發現 bug 的測試是否有價值
- 日常Bug排查-讀從庫沒有原子性?
- 快手二面:你有沒有呼叫過第三方介面?碰到過哪些坑?
- 高效穩定的通用增量 Checkpoint 詳解之二:效能分析評估
- [BUG反饋]模板裡面沒有documentDetailBefore鉤子AI
- [BUG反饋]OneThink版本 1.1.141101版本Bug:模型自動驗證和自動完成函式有衝突模型函式
- 沒有專案經驗怎麼辦?
- 沒有完美的分散式架構分散式架構
- vscode 沒有函式註釋提示VSCode函式
- 事後諸葛亮:如何寫出沒有bug的軟體
- 一個寧靜祥和沒有bug的下午和SqlSession的故事SQLSession
- oracle 增量備份恢復驗證Oracle
- php增量Hash函式的使用PHP函式
- 日常Bug排查-應用Commit報錯事務並沒有回滾MIT
- [BUG反饋]AuthGroupModel的CheckId有BUG
- 自己做的一個簡歷網頁,有很多bug解決不了,有沒有大神幫我看看網頁
- mysql checkpointMySql
- [Bug]Skia的SK_GL沒有定義,但是GrContext::MakeGL需要使用Context
- 目標沒有實現?那是因為你沒有做好計劃管理
- App抓包其實沒那麼複雜!Charles來幫你搞定APP
- 鏈式呼叫 | 我的程式碼沒有else
- Flink增量快照的實現
- 為什麼 Python 沒有函式過載?如何用裝飾器實現函式過載?Python函式
- 靜態成員函式-this指標沒有指的是沒有給,而不是不能擁有,可以自己給呀函式指標
- 19--Scarpy05:增量式爬蟲、分散式爬蟲爬蟲分散式
- Request 驗證錯誤沒有返回錯誤資訊?
- 程式設計師,你碰到過的最難調的Bug是什麼樣的?程式設計師
- [BUG反饋]使用base64上傳圖片,php://input裡沒有值PHP
- 沒有七項式儲存從何談起?
- Postgresql 的CheckpointSQL
- 河洛沒有倒,武俠沒有活
- [BUG反饋]將1.0版本和1.1版本的BUG整理一下,看看有沒有還存在的。
- 沒有實戰經驗?從零敲一個企業級共享專案前後端!後端
- 沒有人測出微博的 bug 嗎