docker搭建zookeeper伪集群

本文介绍了如何使用Docker搭建Zookeeper伪集群。首先,通过docker运行三个Zookeeper容器,并修改配置文件,包括设置容器IP和myid。接着,针对在CentOS7中因selinux权限问题导致的挂载失败,提供了配置文件的修改步骤。最后,检查集群状态,解决可能出现的报错,确保部署成功。
摘要由CSDN通过智能技术生成

Docker version: 20.10.8;Zookeeper version: 3.7

一、容器安装

docker下载zookeeper镜像,而后启动容器

docker run -d -p 2181:2181 --name=zk1 zookeeper:latest

docker run -d -p 2182:2181 --name=zk2 zookeeper:latest

docker run -d -p 2183:2181 --name=zk3 zookeeper:latest

zookeeper数据、日志、配置文件分别在/data,/datalog,/conf目录,有需求可自行配置挂载。

问题:之前尝试用-v进行目录挂载,无法正常启动,原因:CentOS7中的安全模块selinux把权限禁掉了。自己试了–privileged=true参数无作用。其他几种方法感觉太麻烦,所以算了。

二、配置文件修改

之后查看zk1容器IP,zk2、zk3依次类推

docker inspect zk1 | grep IPAddress

获得IP地址:172.17.0.2,172.17.0.3,172.17.0.4

修改/conf/zoo.cfg配置文件,末尾改为

没有vim的话需先在容器内安装vim,依次执行

apt-get update

apt-get install vim

 修改/data/myid的值,zk2、zk3依次执行,修改为2、3

echo 1 > /data/myid

三、检查状态 

重启容器zk1/zk2/zk3,查看结果,zk1已变为follower,说明部署成功。

[root@VM-0-15-centos ~]# echo stat | nc 172.17.0.2 2181
Zookeeper version: 3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
Clients:
 /172.17.0.1:46600[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0.0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 5

可能会出现报错:stat is not executed because it is not in the whitelist.

原因:zookeeper.4lw.commands.whitelist,3.4.10中的新增功能

解决办法:进入容器,在/apache-zookeeper-3.7.0-bin/bin目录下的zkServer.sh脚本中添加代码。

ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"

 可加在如下位置,重启后即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值