【问题标题】:How to use flume for uploading zip files to hdfs sink如何使用水槽将 zip 文件上传到 hdfs 接收器
【发布时间】:2015-02-03 14:55:20
【问题描述】:

我是 Flume 的新手。我的 Flume 代理有源作为 http 服务器,它定期从那里获取 zip 文件(压缩的 xml 文件)。这个 zip 文件非常小(小于 10 mb),我想放提取到 hdfs 接收器中的 zip 文件。请分享一些想法如何做到这一点。我是否必须使用自定义拦截器。

【问题讨论】:

    标签: flume flume-ng


    【解决方案1】:

    Flume 将尝试逐行读取您的文件,除非您配置了特定的反序列化器。反序列化器可让您控制文件如何解析和拆分为事件。您当然可以遵循专为 PDF 等设计的 blob deserizalizer 的示例,但我知道您实际上想要解压缩它们,然后逐行阅读它们。在这种情况下,您需要编写一个自定义的反序列化器来读取 Zip 并逐行写入事件。

    这是文档中的参考:

    https://flume.apache.org/FlumeUserGuide.html#event-deserializers

    【讨论】:

    • 感谢 erik...blob deserizalizer 是解决这个问题的完美解决方案。没有更多疑问...将文件作为单个事件处理是否有效。是否可以使用事件设置某些文件名.setHeader 方法。它要求一张地图。你能分享一下吗?
    • 嗯,在一个事件中假脱机整个文件效率不是很高,我总是会尝试使用反序列化器来解析单个事件。您可以设置文件头以保留原始文件名。这是 SpoolSource 中的一个选项,您可以在文档中查看。如果它对你有用,请接受我的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多