DistCp最常用在集群之间的拷贝:
hadoop distcp hdfs://nn1:8020/foo/bar \
hdfs://nn2:8020/bar/foo
这条命令会把nn1集群的/foo/bar目录下的所有文件或目录名展开并存储到一个临时文件中,这些文件内容的拷贝工作被分配给多个map任务, 然后每个TaskTracker分别执行从nn1到nn2的拷贝操作。注意DistCp使用绝对路径进行操作。
上面是指定文件夹,也可以指定文件
hadoop distcp hdfs://nn1:8020/foo/bar/file1 \
hdfs://nn2:8020/bar/foo/file2
注意该命令运行在目标集群客户端上,而不是源端。
如果需要指定队列:
hadoop distcp -Dmapred.job.queue.name=*** hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo