最近项目中需要将A机房数据迁移到B机房中,Hbase表数据迁移方案有distcp、copyTable 、export\import等方式;
由于这次数据量较小,且Hadoop未部署yarn,所以采用了直接copy Hdfs文件的方式,如下:
1、导出数据:
hadoop fs -copyToLocal /hbase/data/default/h_test1 /safe/work
2、导入数据:
hadoop fs -copyFromLocal /safe/work/h_test1 /hbase/data/default/
导入数据时需要保证B集群中表已经建好,且无数据
3、修复meta数据
hbase hbck -fixTableOrphans h_test1
hbase hbck -fixMeta h_test1
hbase hbck -fixAssignments h_test1
hbase hbck -repair h_test1
一般前2步就可以完成meta数据修复,如果表Region有过修改则需要执行第4步。