玉兒做春夢網(wǎng)站網(wǎng)站優(yōu)化建議
checkpoint(檢查點)
在flink中最重要的容錯機制,就是checkpoint機制,使用checkpoint可以將之前某個時間點的所有的狀態(tài)進行保存,這個存檔就是checkpoint。
檢查點的保存
周期性存儲保存,間隔時間可以由用戶進行指定。
保存時間點應(yīng)該是整體處理完某一條數(shù)據(jù)處理完,將這個時間點的狀態(tài)保存下來。
檢查點恢復(fù)狀態(tài)
當(dāng)發(fā)生故障時,需要找到最近一次成功保存的檢查點進行數(shù)據(jù)恢復(fù)。
檢查點算法
在flink中,采用Channdy-Lamport 算法的分布式快照,可以在不暫停流處理的前提下,經(jīng)狀態(tài)備份保存到檢查點。
借鑒水位線設(shè)計,插入一個特殊數(shù)據(jù)結(jié)構(gòu),表示觸發(fā)檢查保存的時間點,算子遇到后就對當(dāng)前算子內(nèi)狀態(tài)進行持久化保存。
在JobManager中有個『檢查點協(xié)查器』,用以專門協(xié)調(diào)處理檢查點的相關(guān)工作。
分布式快照算法
barrier對齊的精準(zhǔn)一次
barrier對齊的至少一次
非barrier對齊的精準(zhǔn)一次
checkpoint 常用配置
主要是在設(shè)置檢查點時需要設(shè)置周期,已經(jīng)模式(例如采用精準(zhǔn)一次)
超時時間(默認(rèn)10分鐘)
指定檢查存儲路徑
最大checkpoint并發(fā)數(shù)
最小等待時間間隔
最小等待間隔(上一輪checkpoint結(jié)束到下一輪checkpoint開始間的間隔)
取消作業(yè)時,checkpoint的數(shù)據(jù)是否保留在外部系統(tǒng)
允許checkpoint連續(xù)失敗的次數(shù)
非對齊檢查點設(shè)置后將會自動設(shè)置為精準(zhǔn)一次。
保存點用途
整體上看可以將保存點看做程序臨時保存使用:
版本管理和歸檔存儲
更新Flink版本
更新應(yīng)用程序
調(diào)整并行度
暫停應(yīng)用程序
狀態(tài)一致性
狀態(tài)一致性部分主要分為三種級別
最多一次(At-Most-Once)
至少一次(At-Least-Once)
精準(zhǔn)一次(Exactly-Once)
采用兩階段提交可以用來解決分布式場景下的事務(wù),1、上一次檢查點完成后,barrier后續(xù)的數(shù)據(jù)開始進行預(yù)提交;2、當(dāng)新的檢查點完成時,各個節(jié)點進行正式提交。