flink的savepoints和checkpoints以及state Query(暂时无法全部完成)
下面表格來自[18]
| 目標 | 任務失敗的恢復/故障轉移機制 | 手動備份/重啟/恢復任務 |
| 實現(xiàn) | 輕量快速 | 注重可移植性,成本較高 |
| 生命周期 | Flink自身控制 | 用戶手動控制 |
下面的這些名詞還沒有搞懂:
Retained Checkpoints
Unaligned checkpoints
-------------------------------下面是check point-state query具體實驗----------------------------------------------------------------
下面嘗試做個checkpoint實驗相關的state query[9],
[9]其實來自官方文檔
代碼鏈接
| 步驟 | 內容 |
| ① | 確保集群各個節(jié)點的$FLINK_HOME/lib下面有 flink-queryable-state-runtime_2.11-1.12-SNAPSHOT.jar 確保集群各個節(jié)點的$FLINK_HOME/conf/flink-conf.yaml中添加 queryable-state.enable: true |
| ② | 啟動的集群 Hadoop(hdfs保存flink的state),Zookeeper,Flink(Standalone模式) |
| ③ | mvn clean mvn package 運行WordCount.java 此時應當會在Flink WEB UI的Task Managers的stdOut中看到輸出結果. |
| ④ | master:8085中的job id拷貝到QueryState.java中 |
| ⑤ | mvn clean mvn package 運行QueryState.java |
上述實驗最終以失敗告終,無法輸出被查詢的state(有沒有報錯).
Query state的原理是這樣的(如下圖):
QueryableStateClient與QueryableStateClientProxy通信,
QueryableStateClientProxy與QueryableStateServer通信后獲取State內容然后返回給QueryableStateClient
-------------------------------下面是savepoint和checkpoint具體實驗----------------------------------------------------------------
savepoint實驗見[21][22]
checkpoint實驗見[23](包含自動重啟策略設置)
---------------------------------------關于flink sql的checkpoint-----------------------------------------------------------------------------------
flink sql的checkpoint只能是在被嵌入某個Class/Object中,
然后編譯運行的時候,checkpoint/savepoint才能被使用,流程與上面的一致.
--------------------------------------------------------------------------------------------------------------------------------------------
?
總結:
目前Query State實驗和incremental checkpoint實驗都處于失敗狀態(tài)
?
Reference(還差[5][16]沒看完):
[1]Flink中案例學習--State與CheckPoint理解(例子殘缺不完整)
[2]Flink狀態(tài)流處理:State Backends三種方式詳解(無代碼)
[3]Flink —— StateBackend 狀態(tài)后端(代碼不能體現(xiàn)check point的效果)
[4]三種State Backends | 你該用哪個?(沒有代碼)
[5]Flink State狀態(tài)以及Checkpoint機制(一)(含有具體例子)
[6]秒懂Flink狀態(tài)State-深度解讀(上)『建議收藏』(對官方文檔的翻譯)
[7]五、flink--state狀態(tài)管理機制(對官方文檔的翻譯)
[8]Flink可查詢狀態(tài)Queryable State:替換你的數(shù)據(jù)庫(沒啥用)
[9]Flink讀取state的狀態(tài)(這個例子來自官方文檔,實驗失敗)
[10]Flink State的兩張圖(沒啥用)
[12]Flink的State概述(沒啥用)
[13][Flink State] State究竟保存在哪里?(已經閱讀)
[14]數(shù)據(jù)處理能力相差 2.4 倍?Flink 使用 RocksDB 和 Gemini 的性能對比實驗(已經閱讀)
[15]Checkpointing(官方文檔,講解flink-conf.yaml中的配置與代碼中的配置,只是一些配置選項,沒有具體實驗)
[16]Working with State(官方文檔,需要重點攻破)
[17]Flink的RocksDBStateBackend一些使用經驗
[11]Flink 有狀態(tài)的流的工作(Working with state)(簡書官方在審核)
[18]【譯】Flink - Savepoint vs Checkpoint
[19]flink Savepoint 和 Checkpoint 使用(不是太詳細)
[20]使用Flink的Savepoint功能
[21]flink的savepoint實驗-java
[22]flink的savepoint實驗-scala
[23]flink的checkpoint實驗-scala版本
總結
以上是生活随笔為你收集整理的flink的savepoints和checkpoints以及state Query(暂时无法全部完成)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flink的datastream进行jo
- 下一篇: Emachines Em350拆机更换键