在集群之间进行分布式拷贝,增加数据移动的效率

在集群之间进行分布式拷贝,增加数据移动的效率

Hadoop分布式拷贝distcp是在集群内部或者集群之间高效拷贝大量数据的工具。它实质上是使用MapReduce框架进行拷贝。使用MapReduce进行拷贝的好处包括并行化,错误处理,有处理日志,还有报告。distcp工具在开发,研究和生产集群中拷贝数据很有作用。

准备工作

目标集群与源集群必须能够相互访问。

源集群应该将map任务的预测执行关闭。可以在配置文件mapredsite.xml中配置mapred.map.tasks.speculative.execution为false来完成。这将阻止一些难以预料的行为当map任务失败时。
源集群和目标集群必须使用相同的RPC协议。通常情况下,这就意味着源集群和目标集群要安装相同的Hadoop集群。

完成步骤

1将集群A中的weblogs文件夹拷贝到集群B
hadoop distcp hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs
2将集群A中的weblogs文件夹拷贝到集群B,覆盖已经存在的文件
hadoop distcp –overwrite hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs
3将集群A中的weblogs文件夹与集群B的weblogs文件夹进行同步
hadoop distcp –update hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs

工作原理

在源集群中,被拷贝的文件被当做一个大的文件。一个Map任务将被创建,他将完成集群之间的拷贝工作。在默认的情况下每个Map将被分配大文件中的256M进行处理。例如,假设weblogs文件夹的大小为10GB,40个map每个将获得大概256M进行拷贝。在distcp中可以控制map的数目:
hadoop distcp –m 10 hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs
在上面举的例子中,有10个map,每个map将拷贝1GB。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值