distcp集群间数据复制

distcp
启动MR实现复制
1、关闭源集群map任务的推测执行,mapred-site.xml
 mapred.map.tasks.specutive.execution false,避免map任务失败时产生不可知的行为
2、版本hadoop必须一致
 前提:B上已建立对应文件夹接收数据
 1、复制A->B
 hadoop distcp hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs
 2、复制并覆盖
 hadoop distcp -overwrite hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs
 3、同步
 hadoop distcp -update hadf://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs
3、源集群启动map-only的MR实现复制,默认一个map分配256M的数据块文件,默认启动40个map
 设置map个数
 hadoop distcp -m 10 hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/weblogs
4、不同版本集群间的复制
 一般建议在源集群使用hftpFileSystem,只读的文件系统,相应的map在目标集群上运行
 hadoop distcp hftp://namenodeA:port/data/weblogs hdfs://namenodeB/data/weblogs
 port的值为hdfs-site.xml中dfs.http.address属性的端口号
 

posted @ 2014-07-28 11:44  jseven  阅读(882)  评论(0编辑  收藏  举报