# 问题
- 查看安装目录下logs/里的日志信息为:
Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
# 解决方法
* 安装的版本为:apache-zookeeper-3.5.9.tar.gz,网上大多数说是安装目录下缺少lib目录。截图如下:

删除apache-zookeeper-3.5.9.tar.gz解压文件,重新上传apache-zookeeper-3.5.9-bin.tar.gz文件。解压命令:`tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz`
apache-zookeeper-3.5.9-bin.tar.gz解压后的目录结构如下:
![]()
可以看到有一个lib目录。
* 启动服务
命令:`sh ./bin/zkServer.sh start`,如下图所示即为启动成功。

* 用`./bin/zkServer.sh status`命令查看Zookeeper服务启动状态

# 解压之后,Zookeeper服务启动之前,需要做以下操作:
* 在解压目录的conf/目录下,使用命令`cp zoo_sample.cfg zoo.cfg`,然后编辑文件zoo.cfg,zoo.cfg文件中修改以下内容:
dataDir=/usr/local/zookeeper01/datatmp
dataLogDir=/usr/local/zookeeper01/logs
# the port at which the clients will connect
clientPort=2181
在文件末尾追加以下配置信息:
server.1=localhost:19001:17001
server.2=localhost:19002:17002
server.3=localhost:19003:17003
* 在dataDir对应的/usr/local/zookeeper01/datatmp目录下新建文件,名称为:myid,
内容为server.id中对应的id。

注:zoo.cfg中的server.id说明
格式: server.A = B:C:D
其中,
A: 是一个数字,集群中表示第几号服务器,与myid中的值相对应。
B: 服务器IP地址或与域名.
C: 端口号,集群成员之间通过该端口号进行信息交换,表示这个服务器与集群中的leader服务器交换信息的端口.
D: 端口号,是leader挂掉后,专门用来选举leader的端口.
* 对zookeeper的其它节点作同样操作。
等所有节点启动完成之后,Zookeeper集群即搭建完成。
* 查看节点状态,如下,即启动成功。

本文详细介绍了在安装apache-zookeeper-3.5.9版本时遇到的'Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain'错误,以及解决该问题的步骤。首先,确认解压后的目录结构包含lib目录,然后启动Zookeeper服务,使用`zkServer.sh start`命令。接着,配置zoo.cfg文件,包括dataDir、dataLogDir、clientPort等参数,并在dataDir下创建myid文件。最后,配置server.id信息以实现集群设置。完成这些步骤后,Zookeeper服务即可成功启动并查看状态。
5421

被折叠的 条评论
为什么被折叠?



