5

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

Apache Flume:如果只有少数生产服务器产生数据并且数据不需要实时写出,那么通过 Web HDFS 或 NFS 将数据移动到 HDFS 也可能是有意义的,特别是如果被写出的数据量相对较少 - 每几个小时几个几 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 并将文件移动到“已处理”目录。
  • 我需要为多个目录执行此操作
4

3 回答 3

2

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

于 2014-08-12T03:31:53.080 回答
2

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

于 2015-09-24T07:06:19.523 回答
-1

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

于 2016-05-06T13:55:27.473 回答