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