2016-03-05 56 views
0
agent.sinks=hpd 
agent.sinks.hpd.type=hdfs 
agent.sinks.hpd.channel=memoryChannel 
agent.sinks.hpd.hdfs.path=hdfs://master:9000/user/hduser/gde 
agent.sinks.hpd.hdfs.fileType=DataStream 
agent.sinks.hpd.hdfs.writeFormat=Text 
agent.sinks.hpd.hdfs.rollSize=0 
agent.sinks.hpd.hdfs.batchSize=1000 
agent.sinks.hpd.hdfs.fileSuffix=.i 
agent.sinks.hpd.hdfs.rollCount=1000 
agent.sinks.hpd.hdfs.rollInterval=0 

我想用HDFS接收器將事件寫入HDFS。並已嘗試大小,計數和時間基礎滾動但沒有按預期工作。它在HDFS中生成太多小文件,如:太多小文件HDFS接收器流水線

-rw-r--r-- 2 hduser supergroup  11617 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832879.i 
-rw-r--r-- 2 hduser supergroup  1381 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832880.i 
-rw-r--r-- 2 hduser supergroup  553 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832881.i 
-rw-r--r-- 2 hduser supergroup  2212 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832882.i 
-rw-r--r-- 2 hduser supergroup  1379 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832883.i 
-rw-r--r-- 2 hduser supergroup  2762 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832884.i.tmp 

請協助解決給定的問題。我使用水槽1.6.0

〜感謝

回答

0

我提供的配置是正確的。這種行爲背後的原因是HDFS。我有2個數據節點,其中有一個出現故障。所以,文件沒有達到最低要求的複製。在Flume日誌中,也可以看到下面的警告消息:

「Block Under-replication detected。Rotating file。」

要刪除此問題的一個可以選擇以下任何解決方案: -

  • 最多數據節點以實現塊的所需的複製,或
  • 設定屬性hdfs.minBlockReplicas相應。

〜謝謝

0

您現在正在推出的每1000個項目的文件。你可以嘗試下面提到的兩種方法之一。

  1. 嘗試將hdfs.rollCount增加到更高的值,該值決定每個滾動文件中包含的事件的數量。
  2. 刪除hdfs.rollCount並將hdfs.rollInterval設置爲您要滾動文件的時間間隔。說hdfs.rollInterval = 600每10分鐘滾動文件。

欲瞭解更多信息,請參閱Flume Documentation