由于java.lang.ClassNotFoundException,Zookeeper无法启动:org.apache.zookeeper.server.quorum.QuorumPeerMain

1bqhqjot  于 2023-02-01  发布在  Apache
关注(0)|答案(3)|浏览(347)

我已经搜索了这个论坛,没有找到适合我的问题的答案:
1.我安装了java 1.8
1.我从https://www.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz下载了zookeeper-3.5.5的二进制版本
1.我将zoo_sample. cfg更改为zoo. cfg,未更改cfg
1.我尝试以root用户身份启动Zookeeper:
[root@pocdnr1n1 apache-Zookeeper-3.5.5-bin]#bin/www.example.com开始配置/动物园配置文件 zkServer.sh start conf/zoo.cfg
我在日志中收到错误:

Could not find the main class: org.apache.zookeeper.server.quorum.QuorumPeerMain.  Program will exit.

谢谢。

c9qzyr3d

c9qzyr3d1#

我想我已经找到了根本原因,张贴在这里为未来的读者:
罪魁祸首是 java 。
我在节点上有一个旧的java版本,这可以通过运行java -version来验证
在我的例子中,java是1.6,我所做的是重置环境,添加新的java 1.8到它:

# export JAVA_HOME=/opt/jdk1.8.0_151
# export JRE_HOME=/opt/jdk1.8.0_151/jre/
# export PATH=$PATH:/opt/jdk1.8.0_151/bin:/opt/jdk1.8.0_151/jre/bin

您应该将PATH添加到.bash_profile中,以便它成为永久的。
在运行source .bash_profile之后,现在您已经将java 1.8设置为默认java。同样,您可以通过运行java -version来确认
再次运行你的Zookeeper,它会像预期的那样启动。
这里常见的缺失是:
1.下载了非二进制Zookeeper

  1. java是太低(1.6不工作,1.8是推荐的)
    1.应设置环境以确保将java 1.8选为默认版本
    希望这能帮上忙。
qcbq4gxm

qcbq4gxm2#

如果你看ZooKeeper管理员指南-3.5.5所需的软件,它说:
ZooKeeper在Java 1.7或更高版本中运行(JDK 7或更高版本,FreeBSD支持需要openjdk 7)。
这证实了你的发现,你的Java版本太低了

f5emj3cl

f5emj3cl3#

对我有效的是使用./gradlew jar -PscalaVersion-2.13.10进行重建
我直接从www.example.com的源代码中使用Kafkagithub.com/apache/kafka,这一步是在我克隆repo的一个新副本时提供给我的,以便从头开始。
我在我的旧版本上做了一个git pull,所以它破坏了依赖关系,我忘记了我必须在一个点上安装。

相关问题