【问题标题】:Hadoop tools for moving files from local file system to HDFS [closed]用于将文件从本地文件系统移动到 HDFS 的 Hadoop 工具 [关闭]
【发布时间】:2023-03-17 09:15:01
【问题描述】:

我正在就如何将数据从共享网络驱动器导入 HDFS 进行 POC。数据将位于共享驱动器上的不同文件夹中,每个文件夹将对应于 HDFS 上的不同目录。我查看了一些流行的工具来执行此操作,但其中大多数是用于移动小块数据而不是整个文件。这些是我找到的工具,还有其他的吗?

Apache Flume:如果只有少数生产服务器产生数据并且数据不需要实时写出,那么将数据移动到HDFS 通过 Web HDFS 或 NFS,尤其是在写入的数据量相对较少的情况下 - 每几个小时几个几 GB 的文件不会损害 HDFS。在这种情况下,规划、配置和部署 Flume 可能不值得。 Flume 的真正目的是实时推送事件,并且数据流是连续的,并且其容量相当大。 [来自 safari online 的 Flume book 和 flume cookbook]

Apache Kafka: 生产者-消费者模型:消息被持久化在磁盘上并在集群内复制以防止数据丢失。每个代理都可以处理数 TB 的消息而不会影响性能。

Amazon Kinesis: 实时数据(如 Flume)的付费版本

WEB HDFS: 提交 HTTP PUT 请求,不自动跟随重定向,也不发送文件数据。使用 Location 标头中的 URL 和要写入的文件数据提交另一个 HTTP PUT 请求。 [http://hadoop.apache.org/docs/r1.0.4/webhdfs.html#CREATE]

开源项目: https://github.com/alexholmes/hdfs-file-slurper

我的要求很简单:

  • 轮询文件的目录,如果有文件,将其复制到 HDFS 并将文件移动到“已处理”目录。
  • 我需要为多个目录执行此操作

【问题讨论】:

    标签: hadoop hdfs apache-apex


    【解决方案1】:

    spooling directory source 试试flume。您没有提及您的数据量或速度,但我使用在边缘节点上运行的单个水槽代理,从本地 linux 文件系统到 Kerberized hdfs 集群进行了类似的 POC。

    【讨论】:

      【解决方案2】:

      试试dtingest,它支持从不同来源摄取数据,如共享驱动器、NFS、FTP 到 HDFS。他们还支持定期轮询目录。它应该可以免费试用下载。 它是在Apache Apex平台上开发的。

      【讨论】:

        【解决方案3】:

        查看Toad for Hadoop 1.5。最新版本引入了一个受 ftp 启发的 Local to HDFS Sync 界面,其中包含许多选项来帮助用户保持本地和 HDFS 环境同步。链接到博文here

        【讨论】:

          猜你喜欢
          • 2015-03-28
          • 1970-01-01
          • 2012-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多