Zookeeper启动失败解决办法汇总——Error contacting service. It is probably not running.

本文针对Zookeeper集群启动过程中出现的错误进行详细分析,并提供了多种可能的解决方案,包括检查JDK配置、端口冲突处理、网络及防火墙设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.报错详情

jps 查看进程是正常的,但是 zkServer.sh status 查看的时候报错。

[root@node2 zookeeper-3.4.6]# jps
1260 QuorumPeerMain
1278 Jps
[root@node2 zookeeper-3.4.6]# zkServer.sh status
JMX enabled by default
Using config: /opt/lft/zookeeper-3.4.6/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

2.解决办法

2.1 常见问题解决(办法汇总)

2.1.1 JDK 是否配好,版本是否与 Zookeeper 不兼容

执行下面两行命令看是否正常(不要觉得第二行没必要,反正我以前遇到过这种坑)
java -version
java
版本的话一般不会搞冲突,除非你的公司刚刚起步,架构水的一批。没毕业的朋友就更不用说了,除非老师足够水。。。

2.2.2 端口是否被占用

# 如果集群没有启动,那么该端口不应该被占用
netstat -apn | grep 2181   #默认2181端口为服务端提供端口,如果你的修改了,按你的实际情况为准
# 查询出来占用2181端口的进程PID后杀掉即可
kill -9 pid                #pid为占用端口的进程id号

2.2.3 网卡问题

执行 ip add 回车

在这里插入图片描述
如果红框位置是物理地址,重启网卡即可:service network restart

2.2.4 网络问题

ping 测试

我 ping 百度的(有数据响应即可),也可以 ping 其他结点的机器。
在这里插入图片描述

2.2.5 (慎用!)删除 dataDIr 目录下的文件后重启

我在网上看到有不少朋友这样搞,有些情况也确实很管用:
在这里插入图片描述

但是不建议使用!!!除非你在学习阶段,只是自己在虚拟机上玩玩。
工作的朋友就别用这个方法了,除非你在搭建阶段,还没投入生产使用。

2.2 查看日志解决

查看我的日志:
在这里插入图片描述
Cannot open channel to 3 at election address node4/192.168.146.114:3888

解决办法:

(1)确保防火墙关闭

# 关闭防火墙
service iptables stop
# 查看防火墙状态
service iptables status

在这里插入图片描述
注意
不同发行版的Linux系统的防火墙也不相同,如centos和ubuntu,centos6和centos7…
我这里用的是centos6.5,各位,关于 ubuntu和centos 主流版本的防火墙命令可以参考:
https://blog.csdn.net/weixin_44285445/article/details/107558294

(2)确保你当时安装配置的时候,在 xx/data目录/myid 有相应的数字(这个目录是你在配置文件 zoo.cfg 中给 dataDir 赋的值)
在这里插入图片描述
(3)以上两个都确保的情况下还不行的话,就将 zoo.cfg 中 server.id 的值修改一下:

在此之前我的三台机器都是这样配的:

server.1=node2:2888:3888
server.2=node3:2888:3888
server.3=node4:2888:3888

修改后是这样(就是把本机的):

在这里插入图片描述
然后重启 zookeeper 集群就阔以了。

在这里插入图片描述

当您遇到 Zookeeper 启动失败并提示 `Error contacting service. It is probably not running.` 的错误信息时,可能是由于以下几个原因导致的: ### 常见的原因及解决方案 #### 1. 配置文件问题 检查配置文件`zoo.cfg`是否有误。常见问题是数据目录(`dataDir`)路径设置不正确或者该目录不存在。 **解决方法**: 确保在`zoo.cfg`中指定的数据目录存在,并且Zookeeper有权限访问它。如果不存在,则创建相应的目录结构。 例如,在Linux系统上可以运行以下命令来确认和修正: ```bash mkdir -p /path/to/zk/data chmod +w /path/to/zk/data ``` 同时也要确保`clientPort`端口未被占用或防火墙阻止。 --- #### 2. 端口冲突 默认情况下,Zookeeper监听的是2181端口作为客户端连接端口, 如果这个端口已经被其他程序占用了就无法正常启动. **解决方法**: 检查是否已经有进程绑定了2181端口: ```bash netstat -tuln | grep :2181 ``` 如果有输出表明该端口已被占用,请更改zoo.cfg里的clientPort值到另一个空闲端口号后再尝试重启服务;也可以停止占用此端口的服务释放出来供zk使用。 --- #### 3. Java环境变量缺失 如果没有正确安装JDK或者是JAVA_HOME环境变量没有设定好也可能引起此类异常消息。 **解决方法**: 设置正确的java home路径以及将bin加入PATH环境变量里去。 编辑`.bashrc`, 添加类似下面的内容之后记得source刷新生效哦~(假设jdk装到了/usr/lib/jvm/java-xx-openjdk): ```shell script export JAVA_HOME=/usr/lib/jvm/java-x.x-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` 然后执行 source ~/.bashrc 让修改立即起效! --- #### 4. 日志分析 查看日志可以帮助我们更深入地理解为什么会出现这样的情况。通常日志会位于"dataLogDir"所指代的位置,默认同"dataDir". 打开最近生成的日志文件寻找关键字如 ERROR , FATAL 这样的标识符定位根本故障源点。 **解决方法**: 定位具体的出错位置按照指示进一步排查处理即可。 --- ### 总结 以上就是一些针对“Zookeeper启动失败”可能出现的情况及其对应的解决办法。如果仍然存在问题需要结合实际场景详细诊断了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值