使用hadoop fs -put
命令,数据按顺序进入群集。
但是如何从客户端平行上传数据到HDFS集群?
答案 0 :(得分:0)
由于命令hadoop
是Hadoop客户端,因此有必要让它们中的一些并行运行。但是你必须实现一种拆分策略和错误处理,以便所有文件都能上传。
它不会解决其他瓶颈问题,如磁盘I / O,IOps,网络利用率等。
您会在Data Loading into HDFS - Part 1 - Parallel loading下找到一些背景信息。
答案 1 :(得分:0)
是的,hadoop fs - put
按顺序工作。使用distcp
命令(分布式副本)。
hadoop distcp file:///home/user/path /user/path
distcp
作为MapReduce作业实现,其中复制工作由跨集群并行运行的映射完成。没有减速器。每个文件都由一个地图复制,distcp
尝试通过将文件分成大致相等的分配来为每个地图提供大致相同数量的数据。默认情况下,最多使用20个映射,但可以通过将-m
参数指定为distcp
来更改此映射。
参见手册here。 另请参阅this blog post。
您也可以在最后使用&符号('&'
)并行运行shell命令:
hadoop fs - put src_file tgt_file &
hadoop fs - put src_file2 tgt_file2 &