我正在做一个关于如何将数据从共享网络驱动器导入 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 并将文件移动到“已处理”目录。
- 我需要为多个目录执行此操作