【发布时间】:2015-04-13 14:20:38
【问题描述】:
(我在 CentOS 5.8 上运行)。我一直遵循Clustered (Multiserver) Zookeeper Set-up 的指示,但是当我尝试启动我的服务器时出现错误。当我按照文档中的描述运行命令时:
java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar:conf \ org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo.cfg
我得到错误:
Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
我有我的文件位置,并且正在从 ~/zookeeper-3.4.6 目录运行:
~/zookeeper-3.4.6/zookeeper-3.4.6.jar
~/zookeeper-3.4.6/conf/zoo.cfg
~/zookeeper-3.4.6/data/myid
~/zookeeper-3.4.6/lib/log4j-1.2.16.jar
~/zookeeper-3.4.6/bin/zkServer.sh
有谁知道为什么会发生这个错误?我不太了解正在传递的参数,因此我很难调试路径问题。作为旁注,我尝试运行./zookeeper-3.4.6/bin/zkServer.sh start,它确实成功地工作,但文档似乎表明该命令适用于单节点实例。
编辑:
通过修改命令并取出:conf \ 部分,我能够取得一些的进展,所以现在我正在运行:
java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar: org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo.cfg
我收到一个新错误,但这是进步...
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFacto
ry
at org.apache.zookeeper.server.quorum.QuorumPeerMain.<clinit>(QuorumPeer
Main.java:64)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more
对应于 QuorumPeerMain 的第 63 和 64 行
public class QuorumPeerMain {
private static final Logger LOG = LoggerFactory.getLogger(QuorumPeerMain.class);
【问题讨论】:
标签: apache cluster-computing apache-zookeeper