zookeeper集群搭建启动失败解决 | 您所在的位置:网站首页 › 云打印安装成功但启动失败 › zookeeper集群搭建启动失败解决 |
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 但是今天我们不聊zookeeper是什么,我们聊聊zookeeper启动失败错误排错思路。 错误情形在现 在我执行zkServer.sh脚本启动后,执行zkServer.sh status时,发现服务并没有启动 [root@zk01 ~]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running.出现这样的问题,原因会有很多种,我们要怎么解决呢? 一 查看zookeeper.out分析原因 cat zookeeper.out 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)1 网络问题。排查防火墙 解决步骤:问题排查 7 ->[2、6] ->重启集群 2 初次启动。 解决步骤:问题排查1–>2–>3–>4–>5–>7–>重启集群 备注:初次启动 个个环节都有可能有问题 如果有报错信息可以针对性解决 3 重新启动。 解决步骤:暂停集群–>2–>6–>7–>重启集群 备注:重新启动主要是,节点配置信息问题以及防火墙问题。需要按顺序,暂停zookeeper,kill进程,删除节点信息,关闭防火墙,再次启动集群 三 问题排查 1 java环境 java -version2 排查端口占用 netstat -apn | grep 2181 #默认2181端口为服务端提供端口备注:若集群未启动 则不应该有端口占用 kill -9 pid #pid为占用端口的进程id号3 排除网卡问题 ip addr备注:如果为物理地址则 重启网卡 service network restart4 排除网络问题 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.pid7 防火墙拦截端口 systemctl status firewalld.service systemctl stop firewalld.service #关闭防火墙 systemctl disable firewalld.service #禁止启动防火墙 |
CopyRight 2018-2019 实验室设备网 版权所有 |