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