我正在使用Flume 1.3.1 ng,我正在将一个文件从spoolDir传输到HDFS接收器,并且我需要outpufile的名称与输入文件相同。例如,如果输入文件名是sample.gz,那么输出也需要作为sample.gz如何在Apache Flume中传输文件时保留文件名?
请您提供过程如何在Flume 1.3.1 ng中实现此功能。
我正在使用Flume 1.3.1 ng,我正在将一个文件从spoolDir传输到HDFS接收器,并且我需要outpufile的名称与输入文件相同。例如,如果输入文件名是sample.gz,那么输出也需要作为sample.gz如何在Apache Flume中传输文件时保留文件名?
请您提供过程如何在Flume 1.3.1 ng中实现此功能。
spooldir
有一个参数是否添加关于原始文件名的标题。这就是所谓的fileHeader
,默认情况下它被设置为false,那么将它设置TI真:
agentname.sources.mysource.type = spooldir
agentname.sources.mysource.spoolDir = /path/to/the/dir
agentname.soruces.mysource.fileHeader = true
我使用以下设置:
a1.sources.r1.basenameHeader = true
a1.sinks.k1.hdfs.filePrefix = %{basename}
这些设置给我下面的转换:
original_file.txt -> original_file.1457085474015.txt
可惜你似乎无法从文件名中删除时间戳:C
我在tw后添加了tw o代理配置中的代理agent1.soruces.spoolDirSource.fileHeader = true agent1.sinks.hdfsSink.hdfs.filePrefix =%{file}输出文件名我的代码是.1429872137679.gz。我没有和输入文件一样的名字 – kasi