一.理解狀態(tài)
1.什么是狀態(tài)
其實是某一個時刻熊镣,計算的結(jié)果据块,一般是operator/task,保存在內(nèi)存兽肤,由于Flink分布式的運行套腹,所以根據(jù)體系結(jié)構(gòu)runtime,會設計到TaskManager的slot對應具體任務资铡,實質(zhì)是JVM的運行的一塊內(nèi)存电禀。
容錯就涉及到機器故障和重啟,某一時刻單臺機器掛掉害驹,運行任務的狀態(tài)也會掛掉鞭呕。掛掉的話,就涉及一個后端存儲宛官,重新跑起來的時候葫松,從后端存儲拉起來惠猿。
2.狀態(tài)的作用
3.沒有狀態(tài)的日子
4.Flink豐富的狀態(tài)訪問和高效的容錯機制
5.Operator State
6.Keyed State
7.Keyed State類型
8.兩種狀態(tài)
二.Operator State及重分布redistribute
1.Operator State Redistribute
2.方式1:實現(xiàn)CheckPointedFunction
3.方式2:ListCheckpointed
三.Keyed State和重分布 redistribute
1.Keyed State Redistribute
慰安,本地緩存狀態(tài),
numOfKeyGroups 最大并行度
2.Keyed State TTL腾么,量比較大亥揖,所以需要TTL
3.Keyed State TTL 相關配置
4.清理策略
5.注意事項
四.Broadcast State
1.類似于Mapreduce的廣播珊擂,map join,小表廣播
2.使用
3.BroadcastProcessFunction
4.KeyedBroadcastProcessFunction
5.注意事項费变,不能通信是Broadcast只讀
五.使用Checkpoint
1.狀態(tài)容錯示意圖
2.Checkpointing是什么
3.Checkpointing的前提
4.第一步:啟用checkpoint
5.checkpointMode
6.保留策略
摧扇,一種是因為某種原因,突然掛了挚歧,會保留扛稽。
默認認為手工cancel,就是作業(yè)不要了滑负,所以不保留在张。
7.高級選項
8.第二步:選擇合適的State Backend
9.MemoryStateBackend
10.FsStateBackend
11.RocksDBStateBackend
12.StateBackend總結(jié),in-flight 代表狀態(tài)
13.配置StateBackend
14.checkpoint的相關配置
15.使用RocksDBStateBackend
16.第三步:配置重啟策略
六.Checkpoint原理
1.Barrier
矮慕,必須要事務操作帮匾,Barrier之間的就是checkpoint,事務
2.Barrier多并行度對齊
3.exactly Once & At least Once
七.Savepoint
1.savepoint概念
savepoint類比數(shù)據(jù)庫的備份痴鳄,checkpoint是類比數(shù)據(jù)庫的recovery log
2.assign operator id
也可以指定name瘟斜,可以在UI上面方便查看
3.觸發(fā)savepoint
targetDirectory配置文件目錄,jobId獲取,flink list可以查看哼转,UI可以查看