1. 程式人生 > 其它 >flume採集資料到hdfs上產生的問題及其優化方法

flume採集資料到hdfs上產生的問題及其優化方法

   flume指定HDFS型別的Sink時,採集資料至HDFS指定目錄,會產生大量小檔案。
解決方案:
去掉round時間系列引數,並將rollSize和rollCount置0,
表示不根據臨時檔案大小和event數量來滾動檔案(滾動檔案即指將HDFS上生成的以.tmp結尾的臨時檔案轉換為實際儲存檔案)。
當然,也可以調大rollSize引數(如調至100000000,表示100MB滾動檔案,單位是bytes);

#Describe the sink 新增:

a1.sinks.k1.hdfs.rollSize=0
a1.sinks.k1.hdfs.rollCount=0

  

rollSize
預設值:1024,當臨時檔案達到該大小(單位:bytes)時,滾動成目標檔案。如果設定成0,則表示不根據臨時檔案大小來滾動檔案。


rollCount
預設值:10,當events資料達到該數量時候,將臨時檔案滾動成目標檔案,如果設定成0,則表示不根據events資料來滾動檔案

解決Flume將kafka中的資料傳到HDFS中中文有亂碼問題
翻看Flume文件,發現,HdfsEventSink中,hdfs.fileType預設為SequenceFile,將其改為DataStream就可以按照採集的檔案原樣輸入到hdfs,加一行

a1.sinks.k1.hdfs.fileType=DataStream

a1.sinks.k1.hdfs.fileType=DataStream

原文連結:https://blog.csdn.net/Mirror_w/article/details/93773713

紙上得來終覺淺,絕知此事要躬行。