Zookeeper在正常配置下启动成功,但是在查看状态时仍然会报错的解决方法(超级详细保姆级讲解)

Posted 不秃头小陈同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper在正常配置下启动成功,但是在查看状态时仍然会报错的解决方法(超级详细保姆级讲解)相关的知识,希望对你有一定的参考价值。

  Zookeeper对于不管是刚接触Hadoop和Hbase技术的小伙伴亦或是深耕于计算机行业的大牛一点都不陌生。众所周知, ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。不知道大家会不会跟笔者一样在安装Zookeeper时会遇到这样的一个问题,笔者通过上网查阅相关资料发现没有合适的解决方法,于是通过自己尝试,最后解决了这个问题。看到身边部分小伙伴也会出现这个问题,笔者通过自己的方法帮助他们解决了问题。写这篇文章,希望能够做个总结,帮助与笔者因为这个问题而苦恼的小伙伴早日脱离苦海。

  Zookeeper集群配置运行和状态显示报错有两种,第一种是由于自身操作不当,配置文件出错导致Zookeeper集群配置启动和查看状态时出现报错信息。第二种是Zookeeper集群配置没有错误的情况下,可以正常启动但是查看状态时出现报错信息。

  Zookeeper集群配置如果是非正常配置下运行失败的,网上有关于这个问题的解决方法有很多且详细,笔者将不在这里阐述。因此,本文仅适用于Zookeeper是正常配置的情况,本文将通过图文结合的方法来解决Zookeeper在正常配置下启动成功,但是在查看状态时仍然会报错的问题。

问题解决步骤如下:

1、打开虚拟机,通过进入管理员的模式,通过cd命令进入Zookeeper的目录运行bin/zkServer.sh start 启动Zookeeper集群配置。从图片上看,这里是开启Zookeeper…进程已经正在运行,说明是运行成功的了。运行成功之后我们通常习惯查看节点的状态,看它是leader还是follower。Leader和follower的作用这里不做阐述,故省略。

通过bin/zkServer.sh status 命令查看Zookeeper集群的状态,出现报错。报错信息为Zookeeper JMX enabled by default; Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg; Error contacting service. It is probably not running. (显示没有服务) 使用 jps 查看进程发现进程信息不能获得。

 2、遇到这类问题,先要冷静下来,先检查前面的配置是否正确,是否出现的第一种情况,如果是第一种情况,需要从第一步开始重新对Zookeeper的相关节点文件进行检查。检查的思路大致可以从这几个方面入手,例如文件节点修改是否正确、防火墙是否关闭、目录下 myid 文件下的信息是否正确等。在这里笔者补充一个思路,查看节点的时间是否是同步的,时间不同步也会出现报错的问题。如下图所示

 从图可知,笔者三个节点的时间是同步的。故可以排除节点文件可能是时间不一致的情况。

3、在所有能够想到的导致Zookeeper集群运行状态显示失败的因素排除之后,可以通过查看另外两个节点是否能够成功运行Zookeeper集群和查看Zookeeper集群状态。通过前面的 ssh 免密分别连接到hadoop01、hadoop02按照前面步骤运行Zookeeper集群和查看Zookeeper集群状态。由运行图可知,hadoop01和hadoop02是能够成功运行Zookeeper集群和查看Zookeeper集群状态。

 4、通过查看另外两个节点hadoop01和hadoop02的Zookeeper运行情况和状态排除非正常配置的情况。笔者在检查问题节点的目录文件及验证自己的猜想所执行的相关的命令。效果如下图所示

 

  通过命令发现 Zookeeper.out 文件为空,可以看出这台虚拟机大概是宕机了,这里给刚入门的小白普及一下宕机。从专业的角度去解释宕机,宕机就是指操作系统无法从一个严重系统错误中恢复过来,或系统硬件层面出问题,以致系统长时间无响应,而不得不重新启动计算机的现象。那么,用大众的口语化,通俗来讲,就是“死机”,这时我们只需要终止程序,重新启动该节点就可以了。重新启动并不是直接把虚拟机的终端关闭重新打开,因为重新打开后仍然会出现报错信息。可以通过zkServer.sh stop命令终止该虚拟机的Zookeeper集群进程。

 5、终止该进程后,重新打开Zookeeper集群,就可以解决Zookeeper在正常配置下启动成功,但是在查看状态时仍然会报错的问题。运行结果如下图所示

图中所示,三台虚拟机的Zookeeper集群都可以正常运行和显示状态。此时Zookeeper集群配置呈现的是完成的状态。

以上的解题步骤希望能给各位读者提供一些思路,帮助各位因为这个问题感到困惑的小伙伴脱离苦海,保护头发。初来乍到,多多指教啦!!!

参考文献:百度词条

以上是关于Zookeeper在正常配置下启动成功,但是在查看状态时仍然会报错的解决方法(超级详细保姆级讲解)的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper集群搭建zookeeper01启动不成功解决方案

搭建Zookeeper集群服务启动失败

zookeeper启动为啥占用8080端口,修改哪个配置文件可以改变端口?

在struts2中,发布成功,tomcat正常启动,但请求资源不存在,如何解决

Docker 容器中部署项目后一直重启原因排查

Docker 容器中部署项目后一直重启原因排查