2015-04-23 100 views
3

我正在使用Flume 1.3.1 ng,我正在将一个文件从spoolDir传输到HDFS接收器,并且我需要outpufile的名称与输入文件相同。例如,如果输入文件名是sample.gz,那么输出也需要作为sample.gz如何在Apache Flume中传输文件时保留文件名?

请您提供过程如何在Flume 1.3.1 ng中实现此功能。

回答

0

spooldir有一个参数是否添加关于原始文件名的标题。这就是所谓的fileHeader,默认情况下它被设置为false,那么将它设置TI真:

agentname.sources.mysource.type = spooldir 
agentname.sources.mysource.spoolDir = /path/to/the/dir 
agentname.soruces.mysource.fileHeader = true 
+1

我在tw后添加了tw o代理配置中的代理agent1.soruces.spoolDirSource.fileHeader = true agent1.sinks.hdfsSink.hdfs.filePrefix =%{file}输出文件名我的代码是.1429872137679.gz。我没有和输入文件一样的名字 – kasi

1

我使用以下设置:

a1.sources.r1.basenameHeader = true 
a1.sinks.k1.hdfs.filePrefix = %{basename} 

这些设置给我下面的转换:

original_file.txt -> original_file.1457085474015.txt 

可惜你似乎无法从文件名中删除时间戳:C

相关问题