Flume中HDFS Sink配置

Flume中的HDFS Sink配置參數說明

 

type:hdfs

path:hdfs的路徑,需要包含文件系統標識,比如:hdfs://namenode/flume/webdata/

filePrefix:默認值:FlumeData,寫入hdfs的文件名前綴

fileSuffix:寫入 hdfs 的文件名後綴,比如:.lzo .log等。

inUsePrefix:臨時文件的文件名前綴,hdfs sink 會先往目標目錄中寫臨時文件,再根據相關規則重命名成最終目標文件;

inUseSuffix:默認值:.tmp,臨時文件的文件名後綴。

rollInterval:默認值:30:hdfs sink 間隔多長將臨時文件滾動成最終目標文件,單位:秒;

                       如果設置成0,則表示不根據時間來滾動文件;

注:滾動(roll)指的是,hdfs sink 將臨時文件重命名成最終目標文件,並新打開一個臨時文件來寫入數據;

rollSize:默認值:1024:當臨時文件達到多少(單位:bytes)時,滾動成目標文件;如果設置成0,則表示不根據臨時文件大小來滾動文件;

rollCount:默認值:10:當 events 數據達到該數量時候,將臨時文件滾動成目標文件;如果設置成0,則表示不根據events數據來滾動文件;

idleTimeout:默認值:0:當目前被打開的臨時文件在該參數指定的時間(秒)內,沒有任何數據寫入,則將該臨時文件關閉並重命名成目標文件;

batchSize:默認值:100:每個批次刷新到 HDFS 上的 events 數量;

codeC:文件壓縮格式,包括:gzip, bzip2, lzo, lzop, snappy

fileType:默認值:SequenceFile,文件格式,包括:SequenceFile, DataStream,CompressedStream

                                   當使用DataStream時候,文件不會被壓縮,不需要設置hdfs.codeC;

                                   當使用CompressedStream時候,必須設置一個正確的hdfs.codeC值;

maxOpenFiles:默認值:5000:最大允許打開的HDFS文件數,當打開的文件數達到該值,最早打開的文件將會被關閉;

minBlockReplicas:默認值:HDFS副本數,寫入 HDFS 文件塊的最小副本數。

                                     該參數會影響文件的滾動配置,一般將該參數配置成1,纔可以按照配置正確滾動文件。

writeFormat:寫 sequence 文件的格式。包含:Text, Writable(默認)

callTimeout:默認值:10000,執行HDFS操作的超時時間(單位:毫秒);

threadsPoolSize:默認值:10,hdfs sink 啓動的操作HDFS的線程數。

rollTimerPoolSize:默認值:1,hdfs sink 啓動的根據時間滾動文件的線程數。

kerberosPrincipal:HDFS安全認證kerberos配置;

kerberosKeytab:HDFS安全認證kerberos配置;

proxyUser:代理用戶

 

round:默認值:false,是否啓用時間上的”捨棄”;

roundValue:默認值:1,時間上進行“捨棄”的值;

roundUnit:默認值:seconds,時間上進行”捨棄”的單位,包含:second,minute,hour

 

示例:

a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S

a1.sinks.k1.hdfs.round = true

a1.sinks.k1.hdfs.roundValue = 10

a1.sinks.k1.hdfs.roundUnit = minute

當時間爲2015-10-16 17:38:59時候,hdfs.path依然會被解析爲:/flume/events/20151016/17:30/00

因爲設置的是捨棄10分鐘內的時間,因此,該目錄每10分鐘新生成一個。

 

timeZone:默認值:Local Time,時區。

useLocalTimeStamp:默認值:flase,是否使用當地時間。

closeTries:默認值:0,hdfs sink 關閉文件的嘗試次數;

                      如果設置爲1,當一次關閉文件失敗後,hdfs sink將不會再次嘗試關閉文件,這個未關閉的文件將會一直留在那,並且是打開狀態。

                      設置爲0,當一次關閉失敗後,hdfs sink會繼續嘗試下一次關閉,直到成功。

retryInterval:默認值:180(秒),hdfs sink 嘗試關閉文件的時間間隔,如果設置爲0,表示不嘗試,相當於於將hdfs.closeTries設置成1.

serializer:默認值:TEXT,序列化類型。

 

 

比如:

agent1.sinks.sink1.type = hdfs

agent1.sinks.sink1.hdfs.path = hdfs://cdh5/tmp/data/%Y%m%d

agent1.sinks.sink1.hdfs.filePrefix = log_%Y%m%d_%H

agent1.sinks.sink1.hdfs.fileSuffix = .lzo

agent1.sinks.sink1.hdfs.useLocalTimeStamp = true

agent1.sinks.sink1.hdfs.writeFormat = Text

agent1.sinks.sink1.hdfs.fileType = CompressedStream

agent1.sinks.sink1.hdfs.rollCount = 0

agent1.sinks.sink1.hdfs.rollSize = 0

agent1.sinks.sink1.hdfs.rollInterval = 600

agent1.sinks.sink1.hdfs.codeC = lzop

agent1.sinks.sink1.hdfs.batchSize = 100

agent1.sinks.sink1.hdfs.threadsPoolSize = 10

agent1.sinks.sink1.hdfs.idleTimeout = 0

agent1.sinks.sink1.hdfs.minBlockReplicas = 1

 

上面的配置中,在 HDFS 的 /tmp/data/ 目錄下,每天生成一個格式爲20151016的目錄,

目標文件每10分鐘生成一個,目標文件格式爲:log_20151016_13.1444973768543.lzo

目標文件採用lzo壓縮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章