一、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
如果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, 直接覆盖目的目录的对应文件。