问题描述
在linux系统上安装好zookeeper以后,发现启动不了,报以下的错:
于是输入命令查看启动失败的原因:
./zkServer.sh start.foreground
发现报错原因是找不到或无法加载主类
原因分析:
下载使用的zk是未编译的apache-zookeeper-3.8.2.tar.gz, 自zk3.5.5版本以后,已编译的jar包,尾部有bin,应该使用的是apache-zookeeper-3.8.2-bin.tar.gz。
解决方案:
1、重新下载源码包
下载链接:zk 3.8.2源码包
2、删除原来的解压目录
rm -rf /usr/local/zookeeper
3、新建zookeeper目录
mkdir zookeeper
4、将下载好的zookeeper文件移动到zookeeper目录下
mv /home/yuqn/下载/apache-zookeeper-3.8.2-bin.tar.gz /usr/local/zookeeper
5、解压
tar -zxvf apache-zookeeper-3.8.2-bin.tar.gz
6、配置启动
- 进入到conf目录拷贝一个zoo_sample.cfg并完成配置
#进入到conf目录
cd /usr/local/zooKeeper/apache-zooKeeper-3.8.2-bin/conf/
#拷贝
cp zoo_sample.cfg zoo.cfg
- 修改zoo.cfg
#打开目录
cd /usr/local/zooKeeper/
#创建zooKeeper存储目录
mkdir zkdata
#修改zoo.cfg
vim /usr/local/zooKeeper/apache-zooKeeper-3.8.2-bin/conf/zoo.cfg
- 修改存储目录:dataDir=usr/local/zookeeper/zkdata
7、启动
cd /usr/local/zooKeeper/apache-zooKeeper-3.8.2-bin/bin/
#启动
./zkServer.sh start
但是报了启动失败,报了下面的错:
这是因为没有配置jdk路径,所以要修改zkServer.sh文件:
vim zkServer.sh
在文件开头加上
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_371
再次启动,成功
查看ZooKeeper状态:
./zkServer.sh status
参考文章
zk报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain|Error contacting service