線上生產(chǎn)環(huán)境,經(jīng)常莫名其妙隔一段時(shí)間丟失文件末尾的一部分?jǐn)?shù)據(jù)??,很是尷尬,業(yè)務(wù)大致的流程如下:

數(shù)據(jù)收集服務(wù)流程簡圖
數(shù)據(jù)收集服務(wù)將文件落地后,將會(huì)將體積超過1G的目前正在使用的文件及時(shí)移動(dòng)壓縮歸檔,其實(shí)問題點(diǎn)就在這里,由于單行的日志數(shù)據(jù)平均在8m上下,所以Flume收集效率并不是很高,導(dǎo)致我在檢查文件體積達(dá)標(biāo)時(shí)進(jìn)行遷移動(dòng)作后,未能考慮到Flume是否收集完畢,導(dǎo)致Flume的FD丟失,從而導(dǎo)致隔三差五丟失文件尾部的不定數(shù)量的數(shù)據(jù)。
解決方案
- 更改文件流轉(zhuǎn)策略,使用雙Buffer機(jī)制,以兩個(gè)文件體積達(dá)標(biāo)為觸發(fā)歸檔屏障,歸檔上一個(gè)文件,保留當(dāng)前文件直至下一個(gè)文件體積達(dá)標(biāo)。