【问题标题】:Zookeeper cli not startingZookeeper cli 没有启动
【发布时间】:2018-01-01 17:42:28
【问题描述】:

我使用以下软件包在 suse 上安装了 zookeeper v 3.4.9:

http://download.opensuse.org/repositories/home:/nicolasbock:/midokura/openSUSE_Leap_42.2/x86_64/zookeeper-3.4.9-1.1.x86_64.rpm

启动服务器工作正常,需要连接到它的各种应用程序似乎都可以正常工作,但是当我尝试启动客户端时遇到一个奇怪的错误:

zkCli.sh -server 127.0.0.1:2181
Error: Could not find or load main class org.apache.zookeeper.ZooKeeperMain

我尝试在互联网上搜索,但我想出的唯一答案是设置环境变量 $CLASSPATH。我尝试查看服务启动脚本内部使用的类路径,并将 $CLASSPATH 设置为该类路径,但没有结果。

我正在运行 openjvm v 1.8.0_121

【问题讨论】:

    标签: java apache-zookeeper


    【解决方案1】:

    您是在 Unix 还是 Windows 上尝试?

    我不认为,你需要“-server 127.0.0.1:2181”

    只需运行 zkCli.sh 或 zkCli.cmd

    【讨论】:

    • 我在 linux,opensus 42 上尝试过这个。虽然现在我已经解决了这个问题,但老实说,我不记得我是如何克服它的。我确实相信我尝试在没有显式服务器参数的情况下启动它没有更好的结果......但我不知道,那是很久以前的事了。
    【解决方案2】:

    这是一个类路径问题。 zkCli.sh 脚本正在尝试启动一个主类为 ZooKeeperMain 的 java 应用程序。但是,java 找不到 ZooKeeperMain 类文件,因为传递给 java 的类路径不包含包含 ZooKeeperMain 类的 jar 文件。

    通常,ZooKeeperMain.class 文件包含在一个类似于$ZOOKEEPER_HOME/zookeeper-3.4.13.jar 的 jar 文件中。

    您可能会尝试修改 zkCli.sh 脚本以在脚本尝试启动 ZooKeeperMain 之前打印出类路径。类路径应包含包含 ZooKeeperMain 类的 jar。

    在我的 Windows 10 机器上,我的类路径如下所示:

    /c/Program Files (x86)/Zookeeper/bin/../build/classes:/c/Program Files (x86)/Zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/c/Program Files (x86)/Zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/c/Program Files (x86)/Zookeeper/bin/../lib/netty-3.10.6.Final.jar:/c/Program Files (x86)/Zookeeper/bin/../lib/log4j-1.2.17.jar:/c/Program Files (x86)/Zookeeper/bin/../lib/jline-0.9.94.jar:/c/Program Files (x86)/Zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/c/Program Files (x86)/Zookeeper/bin/../zookeeper-3.4.12.jar:/c/Program Files (x86)/Zookeeper/bin/../conf:

    在我的 Windows 10 机器上从 Git Bash for Windows 启动 zkCli.sh 时,我遇到了与您类似的错误。我的问题是因为 Git Bash 在类路径中处理通配符的方式。我最初在我的类路径中有一些 *.jar 条目,我删除了这些条目以启动 zkCli.sh。

    【讨论】:

      【解决方案3】:

      我今天在 Ubuntu 18.04 上遇到了这个问题。在 zookeper official download page 上,一旦跟随给定的镜像链接并选择稳定版本,他可以看到 2 个可用文件。就我而言,这些是:

      • apache-zookeeper-3.5.5-bin.tar.gz
      • apache-zookeeper-3.5.5.tar.gz

      我选择了apache-zookeeper-3.5.5.tar.gz,观察到同样的问题。尝试按照@Jonathan 的建议打印CLASSPATH,但它打印的是不同的路径,问题是存档文件不包含zooker jars,可能预计用户将自己打包到jar,因为我可以找到源代码该存档文件中的代码。

      下载更大的 apache-zookeeper-3.5.5-bin.tar.gz 存档,提取和运行 ./zkCli.sh 很顺利,因为它具备一切必要条件,所以遇到同样问题的人,试试看它是否对你有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-29
        • 2020-04-15
        • 2015-09-15
        • 2014-12-18
        相关资源
        最近更新 更多