zookeeper基本配置以及一些坑
配置
1. 解压安装包:tar zxvf zookeeper-3.4.14.tar.gz
2. 修改zookeeper配置:
#Master
cd zookeeper-3.4.14
#创建日志文件夹及数据文件夹
mkdir data
mkdir log
#修改配置
cd conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/usr/local/src/zookeeper-3.4.14/data
dataLogDir=/usr/local/src/zookeeper-3.4.14/log
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
master、slave1、slave2 都是这样配,不需要改 ip 和 port
3. 配置环境变量
#Master、Slave1、Slave2
vim ~/.bashrc
ZOOKEEPER_HOME=/usr/local/src/zookeeper-3.4.14
PATH=$PATH:$ZOOKEEPER_HOME/bin
#刷新环境变量
source ~/.bashrc
4. 拷贝安装包
#Master
scp -r /usr/local/src/zookeeper-3.4.14 root@slave1:/usr/local/src/zookeeper-3.4.14
scp -r /usr/local/src/zookeeper-3.4.14 root@slave2:/usr/local/src/zookeeper-3.4.14
5. 分别添加ID
#Master
echo "1" > /usr/local/src/zookeeper-3.4.14/data/myid
#Slave1
echo "2" > /usr/local/src/zookeeper-3.4.14/data/myid
#Slave2
echo "3" > /usr/local/src/zookeeper-3.4.14/data/myid
6. 启动Zookeeper服务
zkServer.sh start
7. 查看运行状态
zkServer.sh status
尴尬的事情出现了:
报错原因:
Error contacting service. It is probably not running.
Error contacting service. It is probably not running.
Error contacting service. It is probably not running.
解决办法:
网上有很多解决方案,无非都是抄来抄去,并没有卵用。
我把有用的贴在这里:
1. 检查端口占用:
netstat -apn | grep 2181
如果有输出结果,就kill -9 :
kill -9 6211
2. 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
3.最重要的一步:
删除配置在dataDir目录下的zookeeper.pid文件
这个是罪魁祸首,干掉它:rm -rf zookeeper_server.pid
这个是输出的日志文件,眼不见心不烦,一起干掉:rm -rf zookeeper.out
然后重启zkServer:
zkServer.sh stop
zkServer.sh start
最后,终于成功了!
zkServer.sh status
master 不是 leader,并不重要,这是zk的选举机制,要是leader挂掉了,会有一个 follower 成为 leader,我们暂时就不操这心了。
ps.有些博客还是会说人话的,总算找到有用的解决方案了。