在实际的生产环境中,我们的企业都有测试集群和生产集群,有的比较大型的企业有多个版本的Hadoop 大数据集群,这时候有个这样的需求,各个集群上的资源需要进行迁移,比如说一些生产集群需要一些测试集群的数据,需要将测试集群的上的数据拷贝到生产集群,这时候就需要使用到分布式拷贝(Distributed Copy).
比较常见的有不同集群之间的数据迁移
hadoop distcp <srcurl> <desturl>
当遇到多版本Hadoop之间的数据迁移拷贝,用上面的命令会出现一些问题。在HDFS中有一个HFTP协议就能很好的解决这个问题:注意distcp使用绝对路径进行操作。
hadoop distcp -i hftp://sourceFS:50070/src hdfs://destFS:8020/dest #i为覆盖的意思,hdfs的端口为8020,网页端口为50070,官网有错
DistCp的底层就是MapReduce。