通过命令:zkServer.sh start启动Zookeeper后,jps查看进程发现全部启动正确,但是在通过zkServer.sh status查看启动状态,却出现如下现象:

通过上述问题可以考虑到的点是配置的三台节点另外两台没有启动。但是可以确定的是另外两台节点也都启动了Zookeeper。


解决方案:

1. 首先查看防火墙是否关闭。如果防火墙开启会影响三点节点的通信,导致接收不到另外两台节点信息。我是上午关闭了虚拟机,下午再打开时没有将防火墙关闭,查看防火墙果然处于活跃状态!

赶紧将防火墙关闭之后,在重启Zookeeper,显示启动  :

2. 如果上述方法无法解决,可以将zoo.cfg下的dataDir对应目录下的version-2文件夹和zookeeper_server.pid文件删除掉,因为意外关闭虚拟机会导致意外关闭前的pid文件残留。删除之后再尝试重新启动Zookeeper。

这里整理了一般遇到Zookeeper集群报错的解决思路:

1、首先检查自己的防火墙是否关闭

systemctl status firewalld

systemctl stop firewalld

2、检查自己是否安装了JDK。因为Zookeeper的运行需要JVM环境,如果没有安装,则不能正常启动Zookeeper。

这里可以通过 java 或 java -version命令查看

3、查看Zookeeper客户端端口2181是否被占用。如果被占用,则使用 kill 命令杀死进程。

可以使用 netstat -apn | grep 2181 或者 lsof -i:2181 命令查看

 4、删除dataDir对应目录下除了 myid 以外的所有文件

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐