修复hbase region hole(region空洞,两个region rowkey不连续)问题流程

原文链接:http://blog.csdn.net/a221133/article/details/7085257

 

修复hbase region hole问题流程
1,查询资料用hbase org.jruby.Main check_meta.rb --fix和 hbase hbck -fix会造成数据丢失,考虑其他办法,
   首先考虑用major_compact对该表进行更新看是否会检测到问题并修复,major_compact完成之后未成功
   
2,重新起动hbase集群,是否会进行闭环检测?未成功,但是0.90.4将会带有检测并修复功能


3,考虑通过修改.meta.表,将非闭环改成闭环,测试机一直再用没检测,直接用hbase shell修改.meta.表是不成功的,可以考虑程序,另有metaedit api提供调用


4,使用hbase org.jruby.Main check_meta.rb --fix和 hbase hbck -fix修复工具进行修复,未成功,
   原因是这两个都是通过.regioninfo来重新映射到.meta.表,但是我们的文件本身就是非闭环的所以修复失败
   
5,考虑使用merge将非闭环合并,命令(该命令要关闭hbase集群执行):
hbase org.apache.hadoop.hbase.util.Merge 
Usage: bin/hbase merge <table-name> <region-1> <region-2> 
完成之后成功,
使用hbase hbck检测:
wb_xxx_xxx_xxx is okay.
Number of regions: 2988
0 inconsistencies detected.
Status: OK

wb_xxx_xxx_xxx表修复成功,集群内不再存在hole region

你可能感兴趣的:(hbase,region hole,region miss)