hadoop distcp的命令和常用

一般使用hadoop -cp的命令来复制文件或者目录,但是hadoop -cp的效率对于处理大数据下的目录级别的copy并不能展现出高性能。
接下来distcp的使用,就是为了增加copy情况下的并行度,真正实现parallel的copy。

copy文件:
hadoop distcp hdfs://namenode1/foo/file1 hdfs://namenode1/foo/file2

copy目录:
hadoop distcp hdfs://namenode1/foo1/ hdfs://namenode1/foo2
如果foo2目录不存在,那么会新建一个foo2目录,然后把foo1的子文件子目录copy过去
如果foo2目录已经存在, 那么会在foo2目录下新生成foo1目录,形成/foo2/foo1的目录结构。
如果目录存在且只想保存foo2目录下:
hadoop distcp -update hdfs://namenode1/foo1/ hdfs://namenode1/foo2
如果目录存在且只想保存foo2目录下并删除其他foo2的目录文件:
hadoop distcp -update -delete -p hdfs://namenode1/foo1/ hdfs://namenode1/foo2

一般来说,distcp更多的用途是实现不同hdfs cluster之间的互相copy:

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

当然我们也可以通过webhdfs和httphdfs, ftp, S3…进行数据copy
hadoop distcp -update -delete -p webhdfs://namenode1:50070/usr webhdfs://namenode2:50070/usr

hadoop distcp -update -delete -p swebhdfs://namenode1:14000/usr swebhdfs://namenode2:14000/usr

distcp是通过MapReduce来实现的,每一个file都调度一个map来copy文件,过程中并没有reduce的参与。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值