HBase bug:重启机群后不能正常工作

现象:
hbase机群重启后不能正常工作,通过web接口访问时,500 Exception的样子。hbase hbck显示很多region没有被服务。

重现过程:
某些情况下下,比如系统压力比较大,或者master意外kill掉了,master会被快速重启。
这个时候region server是正常的,region server会通过zookeeper感知这个事件,并将master切换到新的服务进程上。
但是region server没有做其他的清理工作,这会导致regionserver依然对hbase的journal log(/hbase/.logs/<FQHN>)文件保持写入权限。
而master启动后第一件事就是重放journal,而且很诡异的他选择用append方式打开已有的journal log,这个是hdfs不允许的,于是master不停的尝试append,有不停的失败重试。
于是系统陷入死锁,master在等待重放rs,而rs在等待master发送load region的指令。

深层次的原因还在看代码。jira上还没搜索到相关的bug。这两天集中搞定这个问题。

猜你喜欢

转载自redisliu.iteye.com/blog/1139879
今日推荐