Hbase中Hmaster启动失败的原因
在启动 Hbase 后,发现没有 Hmaster 进程的现象,并且导致 Hbase shell 启动后操作报 Can't get master address from ZooKeeper; znode data == null 的错误以及停止 Hbase 时出现 stopping hbasecat: /tmp/hbase-xxxxx-master.pid: 没有那个文件或目录 的错误...
在启动 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 数据目录下除了 myid 以外的文件, 是 conf/hbase-site.xml 中的 hbase.zookeeper.property.dataDir 属性值
重启 zookeeper 和 Hbase 即可
3.时钟不同步, 超过了默认的30秒限制或自己设定的时间
4.zookeeper 出问题了
5.hdfs 和 hbase 配置的端口不匹配
HBase/conf/
core-site.xml hdfs://master 要与
hbase-site.xml 文件中 hbase-rootdir hdfs://master:9000/hbase 相同
最后成功启动了
更多推荐
所有评论(0)