0
我正在使用flume spooldir將文件放入HDFS中,但我在HDFS中獲得了很多小文件。我想過使用批量大小和滾動間隔,但我不想依賴大小和間隔。所以我決定一次一個地推送flume spooldir中的文件。我怎樣才能做到這一點?如何將文件一個接一個地放在flume spooldir中?
我正在使用flume spooldir將文件放入HDFS中,但我在HDFS中獲得了很多小文件。我想過使用批量大小和滾動間隔,但我不想依賴大小和間隔。所以我決定一次一個地推送flume spooldir中的文件。我怎樣才能做到這一點?如何將文件一個接一個地放在flume spooldir中?
據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
可以提供任何例子 – animal
@animal:我已經編輯了答案,它包括一個示例配置現在 – bessbd
但是在這個例子中,你使用的不是a1.sourc es.src-1.fileHeader – animal