鎖屏面試題百日百刷-Flume篇(一)
?鎖屏面試題百日百刷,每個(gè)工作日堅(jiān)持更新面試題。鎖屏面試題app、小程序現(xiàn)已上線,官網(wǎng)地址:https://www.demosoftware.cn。已收錄了每日更新的面試題的所有內(nèi)容,還包含特色的解鎖屏幕復(fù)習(xí)面試題、每日編程題目郵件推送等功能。讓你在面試中先人一步!接下來的是今日的面試題:
1.Flume有哪些組件,flume的source、channel、sink具體是做什么的
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ù)的 ——對采集到的數(shù)據(jù)進(jìn)行簡單的緩存,可以存放在memory、jdbc、file等等。
sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、Hbase、solr、自定義。
2.你是如何實(shí)現(xiàn)flume數(shù)據(jù)傳輸?shù)谋O(jiān)控的?
使用第三方框架Ganglia實(shí)時(shí)監(jiān)控flume。
3.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ù)的 ——對采集到的數(shù)據(jù)進(jìn)行簡單的緩存,可以存放在memory、jdbc、file等等。
sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、Hbase、solr、自定義。
監(jiān)控后臺日志:exec
監(jiān)控后臺產(chǎn)生日志的端口:netcat
4.講一講Flume參數(shù)調(diào)優(yōu)
1. Source
增加Source個(gè)數(shù)(使用Tair Dir Source時(shí)可增加FileGroups個(gè)數(shù))可以增大Source的讀取數(shù)據(jù)的能力。例如:當(dāng)某一個(gè)目錄產(chǎn)生的文件過多時(shí)需要將這個(gè)文件目錄拆分成多個(gè)文件目錄,同時(shí)配置好多個(gè)Source 以保證Source有足夠的能力獲取到新產(chǎn)生的數(shù)據(jù)。
batchSize參數(shù)決定Source一次批量運(yùn)輸?shù)紺hannel的event條數(shù),適當(dāng)調(diào)大這個(gè)參數(shù)可以提高Source搬運(yùn)Event到Channel時(shí)的性能。
2. Channel
type 選擇memory時(shí)Channel的性能最好,但是如果Flume進(jìn)程意外掛掉可能會(huì)丟失數(shù)據(jù)。type選擇file時(shí)Channel的容錯(cuò)性更好,但是性能上會(huì)比memory channel差。
使用file Channel時(shí)dataDirs配置多個(gè)不同盤下的目錄可以提高性能。
Capacity 參數(shù)決定Channel可容納最大的event條數(shù)。transactionCapacity 參數(shù)決定每次Source往channel里面寫的最大event條數(shù)和每次Sink從channel里面讀的最大event條數(shù)。transactionCapacity需要大于Source和Sink的batchSize參數(shù)。
3. Sink
增加Sink的個(gè)數(shù)可以增加Sink消費(fèi)event的能力。Sink也不是越多越好夠用就行,過多的Sink會(huì)占用系統(tǒng)資源,造成系統(tǒng)資源不必要的浪費(fèi)。
batchSize參數(shù)決定Sink一次批量從Channel讀取的event條數(shù),適當(dāng)調(diào)大這個(gè)參數(shù)可以提高Sink從Channel搬出event的性能。