在刚接触到zookeeper的时候,linux启动时查看状态出现以下异常:

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.
  • 1、检查是否关闭防火墙,(systemctl status firewalld.service / systemctl stop firewalld.service);检查是否安装jdk,因为zookeeper的运行需要JVM环境,可以使用java和java -version命令来验证

  • 2、查看zookeeper的端口2181是否已经被占用了,可以用 netstat -apn | grep 2181 查看 ,若是被占用,便杀掉这个进程。

  • 3、如果是云服务器一定要检查端口是否放开

  • 4、如果上面的操作还解决不了问题,那么我们接着到zookeeper-3.4.5的data目录下,可以看到如下所示的文件,其中version-2文件夹和zookeeper_server.pid两个文件都是需要删除掉的。

  • 5、若是还解决不了,就按照下面的继续检查

zookeeper最近的版本中有个内嵌的管理控制台是通过jetty启动,也会占用8080 端口。

通过查看zookeeper的官方文档,发现有3种解决途径:

  • 方法一:删除jetty。

  • 方法二:修改端口。

修改方法的方法有两种:

一种是在启动脚本中增加 -Dzookeeper.admin.serverPort=你的端口号.

-Dzookeeper.admin.serverPort=你的端口号
一种是在zoo.cfg中增加admin.serverPort=没有被占用的端口号

admin.serverPort=没有被占用的端口号

方法三:停用这个服务。
在启动脚本中增加-Dzookeeper.admin.enableServer=false

-Dzookeeper.admin.enableServer=false

zookeeper集群报错:Error: JAVA_HOME is not set and java could not be found in PATH.

在学习搭建zookeeper集群的时候会经常的启动和停止zookeeper服务,以及查看服务状态。一个一个启动非常麻烦,通过一段shell脚本来进行启动就非常方便了。
那么问题来了,单独启动zookeeper服务的时候是完全没问题的,通过脚本来启动的时候就会报错:

解决办法:
在zookeeper目录下的bin目录下,有一个zkEnv.sh文件,在文件代码部分的前面加上自己的JAVA_HOME路径即可。

修改完成后再运行,问题解决。

作者:Jeebiz  创建时间:2023-01-27 00:47
最后编辑:Jeebiz  更新时间:2024-11-01 10:06