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属性的端口号