flume 寫往hdfs引數理解分析
Flume中的HDFS Sink應該是非常常用的,其中的配置引數也比較多,在這裡記錄備忘一下。
- 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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31347383/viewspace-2109821/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Flume-ng HDFS sink原理解析
- 往hdfs寫資料無許可權
- HDFS寫過程分析
- 使用Flume消費Kafka資料到HDFSKafka
- Flume:資料匯入到hdfs中
- jmeter 引數理解JMeter
- Flume將 kafka 中的資料轉存到 HDFS 中Kafka
- 大資料3-Flume收集資料+落地HDFS大資料
- flume-ng+Kafka+Storm+HDFS 實時系統搭建KafkaORM
- Flume監聽Nginx日誌流向HDFS安裝配置Nginx
- 如何獲取Flume連線HDFS所需要的包
- 04【線上日誌分析】之Flume Agent的3臺收集+1臺聚合到hdfs的搭建
- Flume + Kafka + SparkStreaming分析KafkaSpark
- Flume-ng FileChannel原理解析
- 深入理解mysql引數MySql
- HDFS 安全模式的理解模式
- Mybatis(五)--原始碼分析傳入單個list引數和多個list引數寫法MyBatis原始碼
- LevelDB原始碼分析:理解Slice實現 - 高效的LevelDB引數物件原始碼物件
- 【Twitter Storm系列】flume-ng+Kafka+Storm+HDFS 實時系統搭建ORMKafka
- linux find depth引數理解Linux
- find命令-mtime引數理解
- Ceph配置引數分析
- java通過kerberos認證連線hdfs並寫數JavaROS
- HDFS的讀寫流程
- 21【線上日誌分析】之記錄一個flume-ng的tail -f引數所誘發的血案AI
- CNN實現手寫數字識別並改變引數進行分析CNN
- Flume 配置環境變數變數
- 深入理解JVM(三)——配置引數JVM
- linux,mtime引數的理解Linux
- HDFS讀寫流程(重點)
- HDFS讀寫兩步教程
- hdfs小檔案分析
- Oracle引數檔案解析——引數檔案分析獲取Oracle
- 帶你深入理解傳遞引數
- Request 接收引數亂碼原理解析
- JavaScript引數傳遞的深入理解JavaScript
- 理解spread運算子與rest引數REST
- 引數FAST_START_MTTR_TARGET的理解AST