问题描述
- hadoop启动后,启动 hbase, 进入 hbase shell,执行命令时出现 “zookeeper available, no active master location found”,进入 hbase 的管理界面出现 InvalidProtocolBufferException
软件版本
- hadoop-3.2
- hbase-2.1
- phoenix-5.0
- zookeeper-3.4
安装方式
- 集群安装,3台机器,master, slave, slave2
问题排查
- 出现该问题后,首先是要查看 hbase 的日志,在日志里面出现 InvalidProtocolBufferException 的前面,会有
这么一句话 “Another master is the active master, null; waiting to become the next active master” - 用 jps 命令查看 HMaster 是否启动,经过查看,HMaster 没有正常启动,这个节点的信息是存储在 zookeeper里面的
- 信息显示,zookeeper 是正常的,但是 hbase 的客户端在 zookeeper 里面找不到 hbase master 节点的信息
- 尝试在 zookeeper 的客户端里面执行命令 “get /hbase/master”,查看不到信息
解决方式
- 重启 hbase
-
尝试在 zookeeper 的客户端里面执行命令 “get /hbase/master”,可以获取到信息
-
进入 hbase 管理界面,也可以正常显示
- 这时候进入 hbase shell 进行操作,也恢复正常了