handler.OpenRegionHandler: Failed open of region=[表名] ---异常的解决思路

当遇到HBase表bigtable因异常情况无法使用,尝试drop操作长时间报错时,可检查日志发现NotServingRegionException。解决步骤包括:清理Zookeeper数据,删除HDFS中对应表的数据,从.HBASE.META.表中删除表记录,最后重启HBase服务。

场景描述:由于某些原因(断电、数据文件被人为变动等),导致某一张表(bigtable)无法使用,drop表bigtable长时间后报错,list表中已经不存在bigtable,然而scan 'BIGTABLE',报错如下:

ERROR: org.apache.hadoop.hbase.NotServingRegionException: Region BIGTABLE,,1434443376614.5dc960a46809996a5619060b8e507b59. is not online on dmp-dn-002,60020,1434614612996

查看日志显示:

handler.OpenRegionHandler: Failed open of region=BIGTABLE,\x0F,1434443376615.b589effc1fc458cb17bf3ca99a110050., starting to roll back the global memstore size.
java.lang.IllegalStateException: Could not instantiate a region instance.

可能原因1:
zookeeper引起的,通常这种情况往往是在你正在运行一个进程正在操作hbase数据库的时候,hbase进程被杀掉或hbase服务被停掉所引起的,如果是hbase自身管理的zookeeper

1.将hbase的配置项hbase.zookeeper.property.dataDir值中的目录下的文件全都删除掉

2.cd /hbase目录/bin

hbase zkcli

delete /hbase/table/bigtable

3.删除文件系统中的bigtable文件

hadoop fs -rmr /hbase/data/default/bigtable 

4.删除该表在HBase系统表.META.中的记录:

scan 'hbase:meta', {STARTROW=>'BIGTABLE', LIMIT=>30}  (limit数字为该表的region数,如果不确定,可以手动调整,直到结果列表全是表bigtable的row)

scan列表如下:

BIGTABLE,,1434086168008.e882ec2ed3dfd9d06 column=info:seqnumDuringOpen, timestamp=1434086168550, value=\x00\x00\x00\x00\x00\x00\x00\x01
 9cb47846ea9d132.
 BIGTABLE,,1434086168008.e882ec2ed3dfd9d06 column=info:server, timestamp=1434086168550, value=dmp-dn-001:60020
 9cb47846ea9d132.
 BIGTABLE,,1434086168008.e882ec2ed3dfd9d06 column=info:serverstartcode, timestamp=1434086168550, value=1434076943193
 9cb47846ea9d132.
 BIGTABLE,,1434443376614.5dc960a46809996a5 column=info:regioninfo, timestamp=1434443257437, value={ENCODED => 5dc960a46809996a5619060b8e507b59, NAME => 'BIGTABLE2,,143
 619060b8e507b59.                           4443376614.5dc960a46809996a5619060b8e507b59.', STARTKEY => '', ENDKEY => '\x01'}
 BIGTABLE,,1434443376614.5dc960a46809996a5 column=info:seqnumDuringOpen, timestamp=1434443377081, value=\x00\x00\x00\x00\x00\x00\x00\x01
 619060b8e507b59.
 BIGTABLE,,1434443376614.5dc960a46809996a5 column=info:server, timestamp=1434443377081, value=dmp-dn-002:60020
 619060b8e507b59.
 BIGTABLE,,1434443376614.5dc960a46809996a5 column=info:serverstartcode, timestamp=1434443377081, value=1434423684200
 619060b8e507b59.

.....

根据rowkey,删除对应的row

 

delete '.META.',BIGTABLE,,1434086168008.e882ec2ed3dfd9d069cb47846ea9d132.','info:seqnumDuringOpen' 

delete '.META.',BIGTABLE,,1434086168008.e882ec2ed3dfd9d069cb47846ea9d132.','info:server' 

delete '.META.',BIGTABLE,,1434086168008.e882ec2ed3dfd9d069cb47846ea9d132.','info:serverstartcode' 

delete '.META.',BIGTABLE,,1434086168008.e882ec2ed3dfd9d069cb47846ea9d132.','info:regioninfo'

 

重启hbase,即可。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值