【发布时间】: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