大剑无锋之flume面试题【面试推荐】
1 你是如何實現(xiàn)Flume數(shù)據(jù)傳輸?shù)谋O(jiān)控的
使用第三方框架Ganglia實時監(jiān)控Flume。
2 Flume的Source,Sink,Channel的作用?你們Source是什么類型?
1、作用
(1)Source組件是專門用來收集數(shù)據(jù)的,可以處理各種類型、各種格式的日志數(shù)據(jù),包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy
(2)Channel組件對采集到的數(shù)據(jù)進行緩存,可以存放在Memory或File中。
(3)Sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地包括Hdfs、Logger、avro、thrift、ipc、file、Hbase、solr、自定義。
2、我公司采用的Source類型為:
(1)監(jiān)控后臺日志:exec
(2)監(jiān)控后臺產(chǎn)生日志的端口:netcat
Exec ?spooldir
3 Flume的Channel?Selectors
4 Flume參數(shù)調(diào)優(yōu)
1.?Source
增加Source個(使用Tair Dir Source時可增加FileGroups個數(shù))可以增大Source的讀取數(shù)據(jù)的能力。例如:當(dāng)某一個目錄產(chǎn)生的文件過多時需要將這個文件目錄拆分成多個文件目錄,同時配置好多個Source 以保證Source有足夠的能力獲取到新產(chǎn)生的數(shù)據(jù)。
batchSize參數(shù)決定Source一次批量運輸?shù)紺hannel的event條數(shù),適當(dāng)調(diào)大這個參數(shù)可以提高Source搬運Event到Channel時的性能。
2. Channel?
type 選擇memory時Channel的性能最好,但是如果Flume進程意外掛掉可能會丟失數(shù)據(jù)。type選擇file時Channel的容錯性更好,但是性能上會比memory channel差。
使用file Channel時dataDirs配置多個不同盤下的目錄可以提高性能。
Capacity 參數(shù)決定Channel可容納最大的event條數(shù)。transactionCapacity 參數(shù)決定每次Source往channel里面寫的最大event條數(shù)和每次Sink從channel里面讀的最大event條數(shù)。transactionCapacity需要大于Source和Sink的batchSize參數(shù)。
3. Sink?
增加Sink的個數(shù)可以增加Sink消費event的能力。Sink也不是越多越好夠用就行,過多的Sink會占用系統(tǒng)資源,造成系統(tǒng)資源不必要的浪費。
batchSize參數(shù)決定Sink一次批量從Channel讀取的event條數(shù),適當(dāng)調(diào)大這個參數(shù)可以提高Sink從Channel搬出event的性能。
5 Flume的事務(wù)機制
Flume的事務(wù)機制(類似數(shù)據(jù)庫的事務(wù)機制):Flume使用兩個獨立的事務(wù)分別負責(zé)從Soucrce到Channel,以及從Channel到Sink的事件傳遞。比如spooling directory source 為文件的每一行創(chuàng)建一個事件,一旦事務(wù)中所有的事件全部傳遞到Channel且提交成功,那么Soucrce就將該文件標(biāo)記為完成。同理,事務(wù)以類似的方式處理從Channel到Sink的傳遞過程,如果因為某種原因使得事件無法記錄,那么事務(wù)將會回滾。且所有的事件都會保持到Channel中,等待重新傳遞。
6 Flume采集數(shù)據(jù)會丟失嗎?
不會,Channel存儲可以存儲在File中,數(shù)據(jù)傳輸自身有事務(wù)。
總結(jié)
以上是生活随笔為你收集整理的大剑无锋之flume面试题【面试推荐】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flume实操(三)【实时读取目录文件到
- 下一篇: Flume实操(四)【单数据源多出口案例