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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM