【问题标题】:Transferring files from remote node to HDFS with Flume使用 Flume 将文件从远程节点传输到 HDFS
【发布时间】:2014-11-27 21:56:30
【问题描述】:

我有一堆压缩成 *gz 格式的二进制文件。这些是在远程节点上生成的,并且必须传输到位于数据中心服务器之一的 HDFS。

我正在探索使用 Flume 发送文件的选项;我探索了使用 Spooling Directory 配置执行此操作的选项,但显然这仅在文件目录位于本地同一 HDFS 节点上时才有效。

有什么建议可以解决这个问题吗?

【问题讨论】:

    标签: hadoop hdfs bigdata flume


    【解决方案1】:

    你为什么不运行两个不同的 Flume 代理,一个在远程机器上,一个在你的日期节点上。远程机器上的代理可以读取假脱机目录并将其发送到 avro sink。并且datanode上的agent可以读取avro源并将数据转储到HDFS。

    【讨论】:

      【解决方案2】:

      对于这种情况,没有现成的解决方案。但您可以尝试以下解决方法:

      1. 您可以为此目的创建自己的源代码实现(通过使用 Flume SDK)。例如,this project 似乎可以通过 ssh 连接到远程目录并将其用作源。
      2. 您可以创建一个自定义的计划脚本,定期将远程文件复制到本地假脱机目录,然后将其用作 Flume 代理的假脱机目录源。
      3. 您可以尝试创建另一个脚本来读取远程数据,然后将其写入其输出并在Exec Source 中使用此类脚本。
      4. 您可以在数据所在的机器上找到您的水槽(和代理)(请参阅Can Spool Dir of flume be in remote machine?)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-01
        • 2015-02-21
        • 2017-11-24
        • 1970-01-01
        相关资源
        最近更新 更多