HBase启动表卡在PENDING_OPEN的解决记录

小记。

 

启动时表卡在PENDING_OPEN的原因可能有很多。不同的原因解决方法不同。这里仅针对下列场景。

 

HBase0.94.1

 

公司有个孩子在某个环境上给一张表加了"COMPRESSION=>SNAPPY", 抱歉的是这个环境上并没有SNAPPY.结果如何?

HBase启动的时候其他表正常,但是这张表卡在PENDING_OPEN了。看日志,找不到SNAPPY库抛异常了。可是抛出了异常,HBase又会重试,就陷入死循环了.(这个是HBase的bug了,又可以给他们提个JIRA了吧。不过近期没有去关注他们的JIRA, 不知道更高版本的解决了没有)。

尝试处理:

重启--------重启?重启完不还是陷入PENDING_OPEN的循环

把对应的region unassign掉?-----------shell里这么做会直接报错,不给机会啊

改变表的schema,尝试去掉COMPRESSION?-------------美好的想法,但是修改shema需要disable表。处于PENDING_OPEN的表是一个什么状态呢?你disable它,它说没有enable; 好吧,那enable它吧,说没有disable. 这表就卡在又没disable又没enable的状态上

 

到这里我已经没辙了(有人有更官方的办法的请留言指导)。

 

最后,忒土的办法,停掉HBase, 直接到Hadoop上,找到对应表的.tableinfo.0000xxxx文件,直接拿起来改里面的文本内容,把COMPRESSION改成NONE.重启。搞定。

你可能感兴趣的:(HBase)