Hbase中Hmaster启动失败的原因

时间:2024-11-16 08:10:54

在启动 Hbase 后,发现没有 Hmaster 进程的现象,

并且导致 Hbase shell 启动后操作报 Can't get master address from ZooKeeper; znode data == null 的错误

以及停止 Hbase 时出现 stopping hbasecat: /tmp/: 没有那个文件或目录 的错误

于是就开始寻找启动失败的原因, 最有效的方法是仔细检查 logs 下的报错日志

1.没有找到 /tmp/ 文件

hbase 默认注释掉 HBASE_PID_DIR,而 hbase 默认把 pid 文件放在 /tmp 临时目录下, 这个目录可能会被系统删除等原因无法找到, 解决办法是把 hbase/conf/ 中的 HBASE_PID_DIR 属性打开修改为非临时路径, 例如 opt/module/hbase/pids, 然后重启 zookeeper 和 Hbase 即可

/hbase 节点的历史数据不匹配

需要删除 zookeeper 节点上的 hbase 数据, 以及 zookeeper 根目录下的 hbase 数据目录

-server master:2181
ls /
[/hbase , /zookeeper]
rmr /hbase

删除 zookeeper 根目录下的 hbase 数据目录下除了 myid 以外的文件, 是 conf/ 中的  属性值

重启 zookeeper 和 Hbase 即可

3.时钟不同步, 超过了默认的30秒限制或自己设定的时间

出问题了

和 hbase 配置的端口不匹配
HBase/conf/
hdfs://master 要与
文件中 hbase-rootdir hdfs://master:9000/hbase 相同

最后成功启动了

相关文章