elasticsearch入門系列">elasticsearch入門系列
870
2022-05-29
這篇文章我們講解的是flume常見的知識點進行總結(jié),并將會不斷進行更新。
目錄
1. 如何實現(xiàn)Flume數(shù)據(jù)傳輸?shù)谋O(jiān)控的
2. Flume的Source,Sink,Channel的作用?
3. Flume的Channel Selectors
4. Flume參數(shù)調(diào)優(yōu)
5. Flume的事務(wù)機制
6. Flume采集數(shù)據(jù)會丟失嗎?
1. 如何實現(xiàn)Flume數(shù)據(jù)傳輸?shù)谋O(jiān)控的
使用第三方框架Ganglia實時監(jiān)控Flume。
2. Flume的Source,Sink,Channel的作用?
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、自定義。
3. Flume的Channel Selectors
4. Flume參數(shù)調(diào)優(yōu)
1.Source
增加Source個數(shù)(使用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ù)會丟失嗎?
根據(jù)Flume的架構(gòu)原理,F(xiàn)lume是不可能丟失數(shù)據(jù)的,其內(nèi)部有完善的事務(wù)機制,Source到Channel是事務(wù)性的,Channel到Sink是事務(wù)性的,因此這兩個環(huán)節(jié)不會出現(xiàn)數(shù)據(jù)的丟失,唯一可能丟失數(shù)據(jù)的情況是Channel采用memoryChannel,agent宕機導(dǎo)致數(shù)據(jù)丟失,或者Channel存儲數(shù)據(jù)已滿,導(dǎo)致Source不再寫入,未寫入的數(shù)據(jù)丟失。
Flume不會丟失數(shù)據(jù),但是有可能造成數(shù)據(jù)的重復(fù),例如數(shù)據(jù)已經(jīng)成功由Sink發(fā)出,但是沒有接收到響應(yīng),Sink會再次發(fā)送數(shù)據(jù),此時可能會導(dǎo)致數(shù)據(jù)的重復(fù)。
本次的分享就到這里了,
看 完 就 贊 , 養(yǎng) 成 習(xí) 慣 ! ! ! \color{#FF0000}{看完就贊,養(yǎng)成習(xí)慣!!!} 看完就贊,養(yǎng)成習(xí)慣!!!^ _ ^ ?? ?? ??
碼字不易,大家的支持就是我堅持下去的動力。后不要忘了關(guān)注我哦!
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。