现在的位置: 首页 > 云计算 > 正文

修复hbase region hole问题流程

2013年09月22日 云计算 ⁄ 共 1438字 ⁄ 字号 评论关闭

修复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-site.xml配置fs.default.name):
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问题流程
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-site.xml配置fs.default.name):
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

抱歉!评论已关闭.