原文链接:https://blog.csdn.net/a308601801/article/details/87465074
在启动 Hbase 后,发现没有 Hmaster 进程的现象,
并且导致 Hbase shell 启动后操作报 Can’t get master address from ZooKeeper; znode data == null 的错误
以及停止 Hbase 时出现 stopping hbasecat: /tmp/hbase-xxxxx-master.pid: 没有那个文件或目录 的错误
于是就开始寻找启动失败的原因, 最有效的方法是仔细检查 logs 下的报错日志
1.没有找到 /tmp/hbase-xxxxx-master.pid 文件
hbase 默认注释掉 HBASE_PID_DIR,而 hbase 默认把 pid 文件放在 /tmp 临时目录下, 这个目录可能会被系统删除等原因无法找到, 解决办法是把 hbase/conf/hbase-env.sh 中的 HBASE_PID_DIR 属性打开修改为非临时路径, 例如 opt/module/hbase/pids, 然后重启 zookeeper 和 Hbase 即可
2.zookeeper /hbase 节点的历史数据不匹配
需要删除 zookeeper 节点上的 hbase 数据, 以及 zookeeper 根目录下的 hbase 数据目录
zkCli.sh -server master:2181
ls /
[/hbase , /zookeeper]
rmr /hbase
删除 zookeeper 根目录下的 hbase