完全引用原文原文
channel
-
type
hdfs -
path
寫入hdfs的路徑,需要包含文件系統標識,比如hdfs://namenode/flume/webdata/
可以使用flume提供的日期及%{host}表達式。
-
filePrefix
默認值:FlumeData
寫入hdfs的文件名前綴,可以使用flume提供的日期及%{host}表達式。 -
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
是否啓用時間上的”捨棄”,這裏的”捨棄”,類似於”四捨五入”,後面再介紹。如果啓用,則會影響除了%t的其他所有時間表達式; -
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
序列化類型。其他還有:avro_event或者是實現了EventSerializer.Builder的類名。
下面的配置中,在HDFS的/tmp/lxw1234/目錄下,每天生成一個格式爲20151016的目錄,
目標文件每5分鐘生成一個,文件名格式爲:log_20151016_13.1444973768543.lzo
目標文件採用lzo壓縮。
agent_lxw1234.sinks.sink1.type = hdfs
agent_lxw1234.sinks.sink1.hdfs.path = hdfs://cdh5/tmp/lxw1234/%Y%m%d
agent_lxw1234.sinks.sink1.hdfs.filePrefix = log_%Y%m%d_%H
agent_lxw1234.sinks.sink1.hdfs.fileSuffix = .lzo
agent_lxw1234.sinks.sink1.hdfs.useLocalTimeStamp = true
agent_lxw1234.sinks.sink1.hdfs.writeFormat = Text
agent_lxw1234.sinks.sink1.hdfs.fileType = CompressedStream
agent_lxw1234.sinks.sink1.hdfs.rollCount = 0
agent_lxw1234.sinks.sink1.hdfs.rollSize = 0
agent_lxw1234.sinks.sink1.hdfs.rollInterval = 600
agent_lxw1234.sinks.sink1.hdfs.codeC = lzop
agent_lxw1234.sinks.sink1.hdfs.batchSize = 100
agent_lxw1234.sinks.sink1.hdfs.threadsPoolSize = 10
agent_lxw1234.sinks.sink1.hdfs.idleTimeout = 0
agent_lxw1234.sinks.sink1.hdfs.minBlockReplicas = 1