首页 > 技术文章 > zookeeper启动失败解决办法(3.5.7)

gaojr 2022-01-11 12:08 原文

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

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

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路径即可。

 

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

 

推荐阅读