当前位置: 代码网 > it编程>编程语言>Java > 如何解决zookeeper集群重启Error contacting service.It is probably not running问题

如何解决zookeeper集群重启Error contacting service.It is probably not running问题

2024年12月20日 Java 我要评论
一 问题出现情形1.集群启动后异常关闭,重启出错2.集群未正常启动二 查看zookeeper.out分析原因cat zookeeper.out1.网络问题排查防火墙java.net.norouteto

一 问题出现情形

1.集群启动后异常关闭,重启出错

2.集群未正常启动

二 查看zookeeper.out分析原因

cat zookeeper.out

1.网络问题

排查防火墙

java.net.noroutetohostexception: 没有到主机的路由 (host unreachable)
    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:589)
    at org.apache.zookeeper.server.quorum.quorumcnxmanager.connectone(quorumcnxmanager.java:558)
    at org.apache.zookeeper.server.quorum.quorumcnxmanager.connectall(quorumcnxmanager.java:610)
    at org.apache.zookeeper.server.quorum.fastleaderelection.lookforleader(fastleaderelection.java:838)
    at org.apache.zookeeper.server.quorum.quorumpeer.run(quorumpeer.java:957)

解决步骤:

问题排查 7 ->[2、6] ->重启集群

2.初次启动

解决步骤:

问题排查1-->2-->3-->4-->5-->7-->重启集群

备注:

  • 初次启动 个个环节都有可能有问题
  • 如果有报错信息可以针对性解决

3.重新启动

解决步骤:

暂停集群-->2-->6-->7-->重启集群

备注:

  • 重新启动主要是,节点配置信息问题以及防火墙问题。
  • 需要按顺序,暂停zookeeper,kill进程,删除节点信息,关闭防火墙,再次启动集群

三 问题排查

1.java环境

java -version

2.排查端口占用

netstat -apn | grep 2181   #默认2181端口为服务端提供端口

备注:

若集群未启动 则不应该有端口占用

kill -9 pid                #pid为占用端口的进程id号

3.排除网卡问题

ip addr

备注:

如果为物理地址则 重启网卡

service network restart

4.排除网络问题

ping ip               #ping其他节点主机 若zoo.cfg 使用域名则用域名

备注:

无ping命令则安装 yum install iputils-ping 若有问题则 host映射问题

5.排查节点配置信息

datadir 是否存在 myid文件内容与 service.x 中x对应

例如:

zk01 其对应service.x 则该目录下myid内容为1

6.删除节点残留信息

rm -rf version-2/ zookeeper_server.pid

7.防火墙拦截端口

systemctl status firewalld.service

systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止启动防火墙

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com