flume 配置說明


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壓縮。

    1. agent_lxw1234.sinks.sink1.type = hdfs
    2. agent_lxw1234.sinks.sink1.hdfs.path = hdfs://cdh5/tmp/lxw1234/%Y%m%d
    3. agent_lxw1234.sinks.sink1.hdfs.filePrefix = log_%Y%m%d_%H
    4. agent_lxw1234.sinks.sink1.hdfs.fileSuffix = .lzo
    5. agent_lxw1234.sinks.sink1.hdfs.useLocalTimeStamp = true
    6. agent_lxw1234.sinks.sink1.hdfs.writeFormat = Text
    7. agent_lxw1234.sinks.sink1.hdfs.fileType = CompressedStream
    8. agent_lxw1234.sinks.sink1.hdfs.rollCount = 0
    9. agent_lxw1234.sinks.sink1.hdfs.rollSize = 0
    10. agent_lxw1234.sinks.sink1.hdfs.rollInterval = 600
    11. agent_lxw1234.sinks.sink1.hdfs.codeC = lzop
    12. agent_lxw1234.sinks.sink1.hdfs.batchSize = 100
    13. agent_lxw1234.sinks.sink1.hdfs.threadsPoolSize = 10
    14. agent_lxw1234.sinks.sink1.hdfs.idleTimeout = 0
    15. agent_lxw1234.sinks.sink1.hdfs.minBlockReplicas = 1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM