记一次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 表名