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