zookeeper搭建分布式集群启动失败(Error contacting service. It is probably not running.)

文章目录

1.排查

1.启动zookeeper后查看状态/bin/zkServer.sh status发现报错Error contacting service. It is probably not running.

bash 复制代码
[root@zookeeper01 apache-zookeeper-3.8.2-bin]# ./bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.8.2-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Error contacting service. It is probably not running.

2.查看日志zookeeper-root-server-zookeeper01.out

发现报了一拒绝链接java.net.ConnectException: 拒绝连接 (Connection refused)

bash 复制代码
[root@zookeeper01 logs]# pwd
/opt/apache-zookeeper-3.8.2-bin/logs
[root@zookeeper01 logs]# ls
zookeeper-root-server-zookeeper01.out
[root@zookeeper01 logs]# vim zookeeper-root-server-zookeeper01.out
bash 复制代码
2023-09-05 01:09:12,322 [myid:] - INFO  [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):o.a.z.s.q.FastLeaderElection@996] - Notification time out: 400 ms
2023-09-05 01:09:12,323 [myid:] - WARN  [QuorumConnectionThread-[myid=1]-2:o.a.z.s.q.QuorumCnxManager@401] - Cannot open channel to 3 at election address zookeeper03/192.168.75.132:3888
java.net.ConnectException: 拒绝连接 (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:607)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:384)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:458)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)

2.解决

将配置文件zoo.cfg中节点对应机器的地址改为:0.0.0.0

修改完再此启动即可解决。

注意:每台机器都要改。不能只改一个节点

bash 复制代码
server.1=0.0.0.0:2888:3888
server.2=zookeeper02:2888:3888
server.3=zookeeper03:2888:3888
quorumListenOnAllIPs=true
相关推荐
sbjdhjd42 分钟前
云安全 | Docker 容器逃逸复盘(二):2375 未授权接口如何突破容器管理边界
网络安全·docker·云原生·数据挖掘·开源·云计算·云安全
MrSYJ5 小时前
Docker端口映射咋做的,模拟下。
docker·云原生·kubernetes
张小凡vip5 小时前
Kubernetes--k8s---了解和使用configmap挂载配置文件
云原生·容器·kubernetes
寻林写彡21 小时前
云安全 | Docker 容器逃逸复盘(一):从隔离边界到运行时链路,如何确认自己身处容器
安全·云原生
MrSYJ1 天前
别人再问你路由表是啥,这篇文章摔它脸上
docker·云原生·kubernetes
运维开发王义杰1 天前
ingress-nginx 退役后怎么选:Istio、Kong、Traefik 与 APISIX
云原生
ly76891 天前
Redis 分布式锁的边界条件:Redlock 争议、锁续期与客户端崩溃后的互斥失效
数据库·redis·分布式·分布式锁·watchdog·redlock
灯澜忆梦1 天前
【minio】#5 | MinIO 分布式部署 + HTTPS 部署
分布式·网络协议·https·对象存储·minio
sbjdhjd1 天前
云安全 | Docker 容器逃逸复盘(一):从隔离边界到运行时链路,如何确认自己身处容器
网络安全·docker·云原生·容器·kubernetes·云计算·云安全