美文网首页HadoopNotes
HDFS(6)- distcp并行复制

HDFS(6)- distcp并行复制

作者: 精神使者 | 来源:发表于2017-09-17 22:51 被阅读0次

我们可以用Java Api写代码进行复制文件或目录,也可以使用hadoop fs -cp进行复制,可这两种效率并不高,拷贝文件或目录写代码也麻烦。使用distcp并行处理是比较好的手段。

命令

复制文件

  hadoop distcp file1 file2

复制目录

  hadoop distcp dir1 dir2

如果dir2不存在,将新建dir2,目录dir1的内容全部复制到dir2下。可以指定多个源路径,所有源路径下的内容都将被复制到目标路径下。

如果dir2已经存在,那么目录dir1将被复制到dir2下,形成目录结构dir2/dir1。也可以添加-overwrite选项,在保持目录结构的同时强制覆盖原文件。

  hadoop distcp -overwrite dir1 dir2

也可以使用-update选项,仅更新发生变化的文件。

  hadoop distcp -update dir1 dir2

在HDFS集群间传递数据

  hadoop distcp -update -delete -p hdfs://namenode1/foo hdfs://namenode2/foo

以上命令在第二个集群上为第一个集群的/foo目录创建一个备份。
-delete选项允许删除目标路径中任意没在源路径中出现的文件或目录。
-p选项设置文件的状态属性被保留,如权限、块大小和副本数。

如果两个集群运行的HDFS版本不兼容,可以使用webhdfs进行distcp:

  hadoop distcp webhdfs://namenode1:50070/foo webhdfs://namenode2:50070/foo

原理

distcp是作为一个MapReduce作业来实现的,通过在集群中并行运行的map来完成,这里没有reduce阶段。默认情况下,会启动20个map任务,但是可以通过distcp指定-m参数来修改map数目。

相关文章

  • HDFS(6)- distcp并行复制

    我们可以用Java Api写代码进行复制文件或目录,也可以使用hadoop fs -cp进行复制,可这两种效率并不...

  • Hadoop深入研究一

    Distcp 用于在两个多个集群之间进行数据的迁移,复制文件 hadoop distcp hdfs://namen...

  • 十一、备份与恢复

    1、HBase发展历程中的集中备份方式 1.1、使用distcp进行关机全备份。HBase所有文件都存在HDFS,...

  • HDFS--DistCP远程复制文件

    1、简介2、使用方式3、常见问题-3.1、需要远程复制的文件没有关闭,还处于写的状态-3.2、带宽问题 1、简介 ...

  • HDFS EC 对 distcp 的影响

    distcp 在拷贝一个文件结束后,会对比源文件和目标文件的校验值,判断两者是否一致。其中文件的校验值通过 Fil...

  • HDFS中两个集群数据文件拷贝的方式

    在不同的两个HDFS集群中拷贝数据,我们可以使用distcp,集群之间拷贝数据的正确姿势是: 上面的意思是将集群m...

  • distcp

    hadoop不同集群之间的拷贝 参考官网:http://hadoop.apache.org/docs/r1.0.4...

  • hadoop集群 distcp 缓慢 两个hadoop集群之间使用distcp拷贝时,发现集群之间拷贝数据缓慢,最...

  • Hadoop命令之distcp参考

    distcp命令是用于集群内部或者集群之间拷贝数据的常用命令。 #顾名思义:dist即分布式, distcp即分布...

  • hadoop distcp hftp hdfs跨集群拷贝常见问题

    在工作中遇到部门间数据合作,需跨不同版本集群拷贝数据,从hadoop 2.6.0-cdh5.7.0 拷贝数据到ha...

网友评论

    本文标题:HDFS(6)- distcp并行复制

    本文链接:https://www.haomeiwen.com/subject/kcomsxtx.html