Hadoop集群间数据拷贝distcp使用

一、hadoop集群间拷贝工具简介

distcp是hadoop集群间拷贝工具,使用MapReduce的方式,进行大数据在集群的拷贝,不同于简单的数据copy,distcp会校验数据,稳定传输,最后进行拷贝结果统计,汇总拷贝状态,如拷贝成功的文件数、大小等

二、命令支持:

基本命令:hadoop distcp -option src dst

关于distcp拷贝覆盖:

src = hdfs://nn1:8020/target/first

dst = hdfs://nn2:8020/target/first

hadoop distcp hdfs://nn1:8020/target/first hdfs://nn2:8020/target/first

如果 src路径的后缀,跟dst的后缀一样,那么这样表示,将src的first中内容,拷贝到dst的first中,

如果在dst的target下,没有first目录,那么会在dst中新建first目录,并将src中的first目录,复制到dst的first中

但是如果dst的first已经存在,那会认为,将 src的first,移动到dst的first中,所以最后的效果就是:

hdfs://nn2:8020/target/first/first

理解起来就是,命令是把p1/a 拷贝到 p2/, 现在写成了 copy p1/a p2/a

扫描二维码关注公众号,回复: 5920108 查看本文章

如果p2/a 不存在,那就是理解成,把p1/a 拷贝到 p2/a中,并且新建p2/a

但是如果 p2/a 存在,那是理解成把p1/a 拷贝到 p2/a下,最后就是变成 p2/a/a

所以为了避免该语言出问题,

可以写成 p1/a ,p2/ , 那目的就是将 p1/a 考到p2下。不管p2下有没有a,这样就不会出现 p2/a/a 这样的现象

三、其他支持:

update 更新

If -update is used, 会将目的目录中,对对比源目的中,文件大小和内容不同的文件进行更新

-overwrite 覆盖

If -overwrite is used, 直接覆盖目的目录的对应文件。

四、支持的其他选项(待补充)

猜你喜欢

转载自blog.csdn.net/weixin_42868638/article/details/89319985