【解决】zookeeper启动时一直报 : Starting zookeeper ... FAILED TO START

环境

CentOS 8.3 64位
zookeeper-3.7.0

问题描述

在搭建zookeeper集群的的时候一直报如下错误:


[root@iZwz zookeeper]# ./bin/zkServer.sh start /opt/mydata/zkdata1/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /opt/mydata/zkdata1/zoo.cfg
Starting zookeeper ... FAILED TO START

配置文件如下:

[root@iZwz9bsqk9pa0dkrkl97x1Z zkdata3]# cat zoo.cfg 
tickTime=2000
nitLimit=10
syncLimit=5
dataDir=/opt/mydata/zkdata3
clientPort=5001
server.1=47.101.158.72:3002:3003
server.2=47.101.158.72:4002:4003
server.3=47.101.158.72:5002:5003

刚开始没看出来配置文件有错,所以一直再找其他方面的错误。

解决步骤:

1.开放所用端口

本机服务器就检查防火墙,关闭防火墙。
因为我是用的是阿里云的服务器,所以首先确认一下我配置文件中用到的端口有没有打开,将所用的端口全部添加到安全组中去,如下图:
在这里插入图片描述

2.查看logs文件

去zookeeper的安装路径下查看logs文件夹下的.out结尾的文件
在这里插入图片描述
图中标识的错误显示错误发生在/opt/mydata/zkdata3/zoo.cfg文件夹下,错误的原因是initLimit is not set,我又去查看了一下配置文件,害,果然单词拼错了。
在这里插入图片描述
修改过来,就能正常启动了。
还有一种查看运行日志的命令就是:

./zkServer.sh start-foreground /opt/mydata/zkdata1/zoo.cfg

[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# ./zkServer.sh start-foreground /opt/mydata/zkdata1/zoo.cfg 

[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# ./zkServer.sh start-foreground /opt/mydata/zkdata1/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: /opt/mydata/zkdata1/zoo.cfg
2021-06-21 09:22:43,519 [myid:] - INFO  [main:QuorumPeerConfig@174] - Reading configuration from: /opt/mydata/zkdata1/zoo.cfg
2021-06-21 09:22:43,543 [myid:] - INFO  [main:QuorumPeerConfig@444] - clientPortAddress is 0.0.0.0:3001
2021-06-21 09:22:43,543 [myid:] - INFO  [main:QuorumPeerConfig@448] - secureClientPort is not set
2021-06-21 09:22:43,544 [myid:] - INFO  [main:QuorumPeerConfig@464] - observerMasterPort is not set
2021-06-21 09:22:43,546 [myid:] - INFO  [main:QuorumPeerConfig@481] - metricsProvider.className is org.apache.zookeeper.metrics.impl.DefaultMetricsProvider
2021-06-21 09:22:43,576 [myid:1] - ERROR [main:QuorumPeerMain@99] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /opt/mydata/zkdata1/zoo.cfg
	at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:198)
	at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:125)
	at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:91)
Caused by: java.lang.IllegalArgumentException: initLimit is not set
	at org.apache.zookeeper.server.quorum.QuorumPeerConfig.checkValidity(QuorumPeerConfig.java:790)
	at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:667)
	at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:491)
	at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:194)
	... 2 more
Invalid config, exiting abnormally
2021-06-21 09:22:43,579 [myid:1] - INFO  [main:ZKAuditProvider@42] - ZooKeeper audit is disabled.
2021-06-21 09:22:43,585 [myid:1] - ERROR [main:ServiceUtils@42] - Exiting JVM with code 2
[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# 

大家如遇到错误,查看日志就能判断出错误的原因了

运行结果

[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# 
[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# ./zkServer.sh start /opt/mydata/zkdata1/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: /opt/mydata/zkdata1/zoo.cfg
Starting zookeeper ... STARTED
[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# ./zkServer.sh start /opt/mydata/zkdata2/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: /opt/mydata/zkdata2/zoo.cfg
Starting zookeeper ... STARTED
[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# ./zkServer.sh start /opt/mydata/zkdata3/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: /opt/mydata/zkdata3/zoo.cfg
Starting zookeeper ... STARTED
[root@iZwz9bsqk9pa0dkrkl97x1Z bin]# 
BUT,上面的结果看似已经启动了,但是,我们再用命令zkServer.sh status查看状态时,却出现了下面的信息:

在这里插入图片描述
报了错:Error contacting service. It is probably not running.
于是我继续查看zk的日志,发现他又报了如下错误:
在这里插入图片描述
上网调查后发现还需要在zoo.cfg中添加一个属性quorumListenOnAllIPs=true
新修改的zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/mydata/zkdata1
clientPort=3001
server.1=47.106.158.72:3002:3003
server.2=47.106.158.72:4002:4003
server.3=47.106.158.72:5002:5003
quorumListenOnAllIPs=true

然后./zkServer.sh restart,重启后,再./zkServer.sh status,结果为leader(或follower),搭建成功。
在这里插入图片描述

集群启动成功!!!
如果还解决不了,就检查一下你下载的是哪个安装包
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值