- 前言
- 1. 查找日志错误
- 2. 方法解决
- 3. 拓展
- 4. 细节
一般在启动zookeeper的时候,会出现Starting zookeeper ... FAILED TO START
root@gaokaoli:/opt/apache-zookeeper-3.5.7/bin# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /opt/apache-zookeeper-3.5.7/bin/../conf/zoo.cfg Starting zookeeper ... FAILED TO START
一直找不到原因,通过网上搜寻的方案有很多,但是通过报错的日志可以一一分析原理并且解决,之后也可以通过这些类似的方法进行解决
通过日志的报错进一步判断错误的原因
可以通过./zkServer.sh start-foreground
root@gaokaoli:/opt/apache-zookeeper-3.5.7/bin# ./zkServer.sh start-foreground ZooKeeper JMX enabled by default Using config: /opt/apache-zookeeper-3.5.7/bin/../conf/zoo.cfg Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.server.quorum.QuorumPeerMain
如图所示
具体原因是该日志的当前压缩包是一个源码压缩包,将其解压后,发现都是java的源码,而不是编译的包
同门通过ls查看其解压后的压缩包
发现没有lib文件,原因就在这了
因为我们压缩的是不带bin的压缩包
带bin的压缩包是真正的标准压缩包
而不带bin的压缩包是源码压缩包
不要解压错了
正确的解压之后,ls当前文件夹发现其有lib文件了
之后启动zookeeper,就可以正式的成功了
如果你正确的压缩了带bin的压缩包后还是出现了以上的问题
那说明你的压缩包是3.5以上的版本,随着版本的更新,3.5版本以后,都会自动把8080端口给占用了,所以启动不成功了
第一种方案
如果要使用服务器直接换一个端口号即可
将其端口号给更改了
在配置文件conf中的zoo.cfg添加以下命令即可
# admin port admin.serverPort=9000
第二种方案
如果不使用服务器,直接将其禁用即可
也是在配置文件中添加如下命令
# 禁用 AdminServer 服务 admin.enableServer=false4. 细节
如果以上的问题都跟着博主做了
还是出错启动不了
看看是不是配置文件zoo.cfg没有改名字过来
默认的配置文件名字是识别不了的,要更改其名字(切记)



