主题:hbase集群master节点无法启动问题的处理经验

补充说明:主要针对hbase2.0.2版本,其他版本可能有用也可能没用。这些都是公司生产环境出现过的hbase问题经验总结,第一次遇到的时候我花了不少时间研究解决办法,如果这篇文章帮助到你了麻烦评论里写支持下。

第一种情况:

重启集群时,如果报错hbase:meta表不在服务器上,导致集群无法启动如何解决?(如下图)

查看日志:报错异常栈中存在migratezookeeper这个程序提示meta region is in state opening。并且该报错会可能重复出现,一直再刷,还可能会伴随[org.apache.hadoop.hbase.client.RpcRetryingCaller] Call exception 之类的报错

解决办法:可以使用尝试删除zk中节点meta-region-server和table下的所有节点,然后重启master,该报错即可解决。被删除的zk节点会被master程序重建

第二种情况:

重启集群时,报错namespace不在服务器上,导致集群无法启动如何解决(如下图)?

观察日志:。。。‘default’ on table 'hbase:namespace' at region=hbase:namespace 。。。。并且该报错会可能重复出现,一直再刷,还可能会伴随[org.apache.hadoop.hbase.client.RpcRetryingCaller] Call exception 之类的报错

说明:master请求hbase:namespace这个region所在的regionserver,但是这个regionserver并没有hbase:namespace这个region,master请求不到

解决办法:修改元数据表,使得namespace表状态为离线,举例如下命令

put 'hbase:meta' ,'hbase:namespace,,1577418002600.769b4d77f8d07c20063310195c8ea505.' ,'info:state','OFFLINE'

(注意了!不要照抄这个命令!这是个举例,因为hbase:namespace在hbase:meta表中的rowkey每个集群都是不同的,所以需要你自己在meta表中找出rowkey是哪个,然后把info:state这一个列改成OFFLINE,如果你怕写错rowkey,可以先用get命令试试,别put错了,造成更多麻烦)

重启master节点,master会认为hbase:namespace这个region已经离线,会将其重新上线。问题解决,master可以正常启动

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐