【问题标题】:Compressed file ingestion using Flume使用 Flume 压缩文件摄取
【发布时间】:2015-06-04 15:53:15
【问题描述】:

我可以使用 Flume ng 1.3.0 将任何类型的压缩文件(例如 zip、bzip、lz4 等)摄取到 hdfs 吗?我打算使用 spoolDir。请有任何建议。

【问题讨论】:

    标签: hdfs flume


    【解决方案1】:

    您可以提取任何类型的文件。您需要选择合适的解串器。

    以下路线适用于压缩文件。您可以根据需要选择选项:

    agent.sources = src-1
    agent.channels = c1
    agent.sinks = k1
    
    agent.sources.src-1.type = spooldir
    agent.sources.src-1.channels = c1
    agent.sources.src-1.spoolDir = /tmp/myspooldir
    agent.sources.src-1.deserializer=org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder
    
    agent.channels.c1.type = file
    
    agent.sinks.k1.type = hdfs
    agent.sinks.k1.channel = c1
    agent.sinks.k1.hdfs.path = /user/myevents/
    agent.sinks.k1.hdfs.filePrefix = events-
    agent.sinks.k1.hdfs.fileType = CompressedStream
    agent.sinks.k1.hdfs.round = true
    agent.sinks.k1.hdfs.roundValue = 10
    agent.sinks.k1.hdfs.roundUnit = minute
    agent.sinks.k1.hdfs.codeC = snappyCodec
    

    【讨论】:

      【解决方案2】:

      您可以在源头保持文件未压缩,并在将数据摄取到 HDFS 时使用 Flume 提供的压缩算法来压缩数据。 Avro 源和接收器还支持压缩,以防您打算使用它们。

      【讨论】:

        【解决方案3】:

        我编写了自定义源组件并解决了。自定义源可用于摄取任何类型的文件。

        【讨论】:

        • 嗨 Ripon,你能详细解释一下你的方法吗?我了解使用 customsource 您可能会将每个文件作为事件读取,对吗?你是如何在它的接收端处理它以写入 hdfs 的?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-28
        • 1970-01-01
        • 2013-11-16
        • 1970-01-01
        • 2011-09-01
        相关资源
        最近更新 更多