鎖屏面試題百日百刷-Flume篇(二)
鎖屏面試題百日百刷,每個(gè)工作日?qǐng)?jiān)持更新面試題。鎖屏面試題app、小程序現(xiàn)已上線,官網(wǎng)地址:https://www.demosoftware.cn。已收錄了每日更新的面試題的所有內(nèi)容,還包含特色的解鎖屏幕復(fù)習(xí)面試題、每日編程題目郵件推送等功能。讓你在面試中先人一步!接下來的是今日的面試題:
1.flume和kafka采集日志區(qū)別,采集日志時(shí)中間停了,怎么記錄之前的日志。
Flume采集日志是通過流的方式直接將日志收集到存儲(chǔ)層,而kafka試講日志緩存在kafka集群,待后期可以采集到存儲(chǔ)層。
Flume采集中間停了,可以采用文件的方式記錄之前的日志,而kafka是采用offset的方式記錄之前的日志。
2.詳細(xì)介紹Flume有哪些組件?
?

1)source:用于采集數(shù)據(jù),Source是產(chǎn)生數(shù)據(jù)流的地方,同時(shí)Source會(huì)將產(chǎn)生的數(shù)據(jù)流傳輸?shù)紺hannel,這個(gè)有點(diǎn)類似于Java IO部分的Channel。
2)channel:用于橋接Sources和Sinks,類似于一個(gè)隊(duì)列。
3)sink:從Channel收集數(shù)據(jù),將數(shù)據(jù)寫到目標(biāo)源(可以是下一個(gè)Source,也可以是HDFS或者HBase)。
3.你是如何實(shí)現(xiàn)flume數(shù)據(jù)傳輸斷點(diǎn)續(xù)傳?
TailDirSource支持?jǐn)帱c(diǎn)續(xù)傳。通過Json格式文件寫入上次傳遞位置信息,斷點(diǎn)續(xù)傳從下個(gè)位置開始。
4.Flume的source,sink,channel的作用?你們source是什么類型?
source組件是專門用來收集數(shù)據(jù)的,可以處理各種類型、各種格式的日志數(shù)據(jù),包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy
source組件把數(shù)據(jù)收集來以后,臨時(shí)存放在channel中,即channel組件在agent中是專門用來存放臨時(shí)數(shù)據(jù)的 ——對(duì)采集到的數(shù)據(jù)進(jìn)行簡(jiǎn)單的緩存,可以存放在memory、jdbc、file等等。
sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、Hbase、solr、自定義。
監(jiān)控后臺(tái)日志:exec
監(jiān)控后臺(tái)產(chǎn)生日志的端口:netcat
5.講一講Flume的事務(wù)機(jī)制
Flume的事務(wù)機(jī)制(類似數(shù)據(jù)庫的事務(wù)機(jī)制):Flume使用兩個(gè)獨(dú)立的事務(wù)分別負(fù)責(zé)從Soucrce到Channel,以及從Channel到Sink的事件傳遞。比如spooling directory source 為文件的每一行創(chuàng)建一個(gè)事件,一旦事務(wù)中所有的事件全部傳遞到Channel且提交成功,那么Soucrce就將該文件標(biāo)記為完成。同理,事務(wù)以類似的方式處理從Channel到Sink的傳遞過程,如果因?yàn)槟撤N原因使得事件無法記錄,那么事務(wù)將會(huì)回滾。且所有的事件都會(huì)保持到Channel中,等待重新傳遞。