flume採集資料到hdfs上產生的問題及其優化方法
阿新 • • 發佈:2021-10-08
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