记一次Hbase数据迁移和遇到的问题

因为集群不互通,所以采用手动方式迁移

1、下载目标集群数据

hadoop fs -get /apps/hbase/data/data/default/*c4be21d3000064c0 /mnt/data

2、远程复制数据,可以压缩一下

scp ***

3、上传数据到HDFS,一定要切换到hbase用户,不然会有错误

su hdfs
hadoop fs -put /app/hbase/* /apps/hbase/data/data/default/

4、修复元数据等

hbase hbck 只做检查 
hbase hbck -fixMeta 根据region目录中的.regioninfo,生成meta表
hbase hbck -fixAssignments 把meta表中记录的region分配给regionserver 
hbase hbck -fixHdfsOrphans 修复.regioninfo文件
hbase hbck -repair  表名

遇到的问题:

There is a hole in the region chain between  and .  You need to create a new .regioninfo and region dir in hdfs to plug the hole

Found inconsistency in table

最后发现是上传数据到hdfs是没有使用hbase用户,修改文件owner后重新修复就好了

hadoop fs -chown -R hbase:hdfs /apps/hbase/data/data/default

hbase hbck -repair  表名

原文地址:https://www.cnblogs.com/lianglianggege/p/9564605.html