赞
踩
没有在/etc/profile中配置zookeeper环境变量的,需要进入zookeeper解压后目录中的bin目录下
执行zkServer.sh start
和zkServer.sh status
分别来启动和查看状态
在/etc/profile中配置zookeeper的环境变量,添加如下
export ZK_HOME=/export/service/zookeeper PATH=$PATH:$ZK_HOME/bin
systemctl stop firewalld.service systemctl disable firewalld.service #如果使用的是ubuntu,将firewalled.service换成ufw.service即可
查看自己在zoo.cfg中设置的dataDir地址下的myid中的数字与zoo.cfg中的配置是否对应
(这个一定要检查,很简单但很重要)
dataDir=/export/service/zookeeper/data dataLogDir=/export/service/zookeeper/logs server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888
当上面确保无误,还没解决可以试试
jps
查看zookeeper的进程id(QuorumPeerMain)
kill -9 该进程号
杀死该进程
zkServer.sh start
重新启动zookeeper
zkServer.sh status
查看状态
成功选举出leader和follower
原因:zookeeper_server.pid内的进程号与jps查看的当前zk的进程号对不上
在zoo.cfg中设置的dataDir的路径在第一次启动zookeeper后会自动创建个zookeeper_server.pid文件
这个文件内有自动分配给这个zk运行时的进程号(每一次重启zk会重新分配id并自动修改这个文件)
可通过
cat /export/service/zookeeper/data/zookeeper_server.pid
来查看两者的id不一致就导致,虽然jps可以查看到进程已启动,但实际没启动,于是查看状态会报It is propably not running的错
所以让两个id保持一致,即可解决问题
zookeeper.out
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。