1.延遲數據(allowedLateness)
答案:延長窗口銷毀
窗口watermark和allowedLateness之后依然遲到的流數據,也是通過.sideOutputLateData(outputTag)和result.getSideOutput(outputTag)的側輸出流方式輸出的,拿到這一部分數據后用戶可以自己處理。
2.什么是barrier不對齊?
答案:當還有其他輸入流的barrier還沒有到達時,會把已到達的barrier之后的數據1、2、3擱置在緩沖區,等待其他流的barrier到達后才能處理。
barrier不對齊就是指當還有其他流的barrier還沒到達時,為了不影響性能,也不用理會,直接處理barrier之后的數據。等到所有流的barrier的都到達后,就可以對該Operator做CheckPoint了。
3.為什么要進行barrier對齊?不對齊到底行不行?
答案:Exactly Once時必須barrier對齊,如果barrier不對齊就變成了At Least Once;
CheckPoint的目的就是為了保存快照,如果不對齊,那么在第n次快照之前,已經處理了一些n快照之后對應的offset之后的數據,當程序從n次恢復任務時,n次快照對應的offset之后的數據還會被處理一次,所以就出現了重復消費。如果聽不懂沒關系,后面有案例讓您懂。
4.相關參數配置
答案:
5.Flink是如何保證Exactly-once語義的?
答案:
1)事務寫(有延遲):兩階段提交(Two-Phase-Commit,2PC),預寫日志(Write-Ahead-Log,WAL)
兩階段提交:如果外部系統自身就支持事務(比如Kafka),可以使用2PC方式,提供百分百端到端的Exactly-Once。
WAL:WAL方式通用性更強,適合幾乎所有外部系統,但也不能提供百分百端到端的Exactly-Once;
2)冪等性
多次寫入相同數據,結果是一致的的(redis,hbase等)
更多關于大數據培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。