【问题标题】:How to Retain file name when tranferring file in Apache Flume?在 Apache Flume 中传输文件时如何保留文件名?
【发布时间】:2015-04-23 14:56:31
【问题描述】:

我正在使用 Flume 1.3.1 ng,我正在将一个文件从 spoolDir 传输到 HDFS Sink,并且我需要与输入文件相同的输出文件名。例如,如果输入文件名为 sample.gz,则输出也需要为 sample.gz

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

【问题讨论】:

    标签: flume-ng


    【解决方案1】:

    我正在使用以下设置:

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

    这些设置给了我以下转换:

    original_file.txt -> original_file.1457085474015.txt
    

    可悲的是,您似乎无法从文件名中删除时间戳:C

    【讨论】:

      【解决方案2】:

      spooldir 有一个参数,关于是否添加有关原始文件名的标题。叫fileHeader,默认设置为false,所以设置为true:

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

      【讨论】:

      • 我在代理配置中添加了以下两行 agent1.soruces.spoolDirSource.fileHeader =true agent1.sinks.hdfsSink.hdfs.filePrefix = %{file} 我得到的输出文件名为 .1429872137679.gz .我没有得到与输入文件相同的名称
      猜你喜欢
      • 1970-01-01
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      相关资源
      最近更新 更多