用于将文件从本地文件系统移动到HDFS的Hadoop工具

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

Apache Flume:如果只有少数生产服务器生成数据且数据不需要实时写出,那么通过Web HDFS或NFS将数据移动到HDFS也是有意义的,特别是如果写出的数据量相对较少 – 每几小时几GB的几个文件不会伤害HDFS.在这种情况下,规划,配置和部署Flume可能不值得. Flume实际上是为了实时推送事件,数据流是连续的,其数量相当大. [来自safari在线和水槽食谱的水漾书]

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并将文件移动到“已处理”目录.
>我需要为多个目录执行此操作

最佳答案 使用
spooling directory source尝试使用flume.你没有提到你的数据量或速度,但是我使用在边缘节点上运行的单个flume代理从本地linux文件系统到Kerberized hdfs集群进行了类似的POC,结果很好.

点赞