2016-08-22 75 views
0

我正在使用flume spooldir將文件放入HDFS中,但我在HDFS中獲得了很多小文件。我想過使用批量大小和滾動間隔,但我不想依賴大小和間隔。所以我決定一次一個地推送flume spooldir中的文件。我怎樣才能做到這一點?如何將文件一個接一個地放在flume spooldir中?

回答

0

https://flume.apache.org/FlumeUserGuide.html#spooling-directory-source,如果設置a1.sources.src-1.fileHeader = true,那麼你可以指定任何頭(例如文件名頭)在HDFS散熱器(請參閱轉義序列描述%{host}https://flume.apache.org/FlumeUserGuide.html#hdfs-sink

編輯: 對於比如說配置,你可以嘗試以下方法:!

a1.sources = r1 
a1.sources.r1.type = spooldir 
a1.sources.r1.channels = c1 
a1.sources.r1.spoolDir = /flumespool 
a1.sources.r1.basenameHeader = true 

a1.channels = c1 
a1.channels.c1.type = memory 

a1.sinks = k1 
a1.sinks.k1.type = hdfs 
a1.sinks.k1.channel = c1 
a1.sinks.k1.hdfs.path = /flumeout/%{basename} 
a1.sinks.k1.hdfs.fileType = DataStream 
+0

可以提供任何例子 – animal

+1

@animal:我已經編輯了答案,它包括一個示例配置現在 – bessbd

+0

但是在這個例子中,你使用的不是a1.sourc es.src-1.fileHeader – animal

相關問題