Mac(M1)搭建Zookeeper集群
创作时间:
作者:
@小白创作中心
Mac(M1)搭建Zookeeper集群
引用
CSDN
1.
https://blog.csdn.net/woodpecker8/article/details/129026630
本文将详细介绍如何在MacBook M1上使用Docker搭建Zookeeper集群。内容包括Zookeeper版本选择、镜像拉取、单机部署和集群部署的具体步骤。
ZK版本选择
Zookeeper官网地址:https://zookeeper.apache.org/
目前最新的稳定版本是3.7.1,故本文使用3.7.1版本。
镜像拉取
docker pull zookeeper:3.7.1
单机部署
创建挂载目录
# 进入终端用户的根路径
cd ~
# 创建目录
mkdir myZK
cd myZK
mkdir data conf logs
# 查看绝对路径,docker挂载目录建议使用绝对路径
pwd
编辑配置文件
cd ~
cd myZK/conf
vim zoo.cfg
配置内容如下:
dataDir=/data
clientPort=2181
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=localhost:2888:3888;2181
启动容器
docker run -d \
--name zk-simple \
--privileged=true \
-p 2181:2181 \
-v $HOME/myZK/data:/data \
-v $HOME/myZK/conf:/conf \
-v $HOME/myZK/logs:/datalog \
zookeeper:3.7.1
结果验证
# 进入容器内
docker exec -it zk-simple /bin/bash
# 查看状态
./bin/zkServer.sh status
# 执行客户端脚本,进入控制台
docker exec -it zk-simple zkCli.sh
集群部署
创建挂载目录
# 进入终端用户的根路径
cd ~
# 创建目录
mkdir myZK
cd myZK
mkdir -p zk1/conf zk1/data zk1/logs
mkdir -p zk2/conf zk2/data zk2/logs
mkdir -p zk3/conf zk3/data zk3/logs
# 查看绝对路径,docker挂载目录建议使用绝对路径
pwd
自定义子网IP
# 创建子网 zknet
docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zknet
# 查看网络列表
docker network ls
# 查看网络详情
docker network inspect <NETWORK ID>
编辑配置文件
zoo.cfg
cd ~
cd myZK/conf
vim zk1/conf/zoo.cfg
vim zk2/conf/zoo.cfg
vim zk3/conf/zoo.cfg
配置内容如下:
# zk-cluster-1
dataDir=/data
clientPort=2181
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=172.18.0.2:2888:3888
server.2=172.18.0.3:2888:3888
server.3=172.18.0.4:2888:3888
# zk-cluster-2
dataDir=/data
clientPort=2181
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=172.18.0.2:2888:3888
server.2=172.18.0.3:2888:3888
server.3=172.18.0.4:2888:3888
# zk-cluster-3
dataDir=/data
clientPort=2181
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=172.18.0.2:2888:3888
server.2=172.18.0.3:2888:3888
server.3=172.18.0.4:2888:3888
myid
cd ~
cd myZK/conf
# myid文件中配置的内容分别为1,2,3
vim zk1/conf/myid
vim zk2/conf/myid
vim zk3/conf/myid
启动容器
查看端口是否被占用
lsof -i:2181
# 启动容器1
docker run -d \
--name zk-cluster-1 \
--privileged=true \
-p 2181:2181 \
--network zknet --ip 172.18.0.2 \
-v $HOME/myZK/zk1/data:/data \
-v $HOME/myZK/zk1/conf:/conf \
-v $HOME/myZK/zk1/logs:/datalog \
zookeeper:3.7.1
# 启动容器2
docker run -d \
--name zk-cluster-2 \
--privileged=true \
-p 2182:2181 \
--network zknet --ip 172.18.0.3 \
-v $HOME/myZK/zk2/data:/data \
-v $HOME/myZK/zk2/conf:/conf \
-v $HOME/myZK/zk2/logs:/datalog \
zookeeper:3.7.1
# 启动容器3
docker run -d \
--name zk-cluster-3 \
--privileged=true \
-p 2183:2181 \
--network zknet --ip 172.18.0.4 \
-v $HOME/myZK/zk3/data:/data \
-v $HOME/myZK/zk3/conf:/conf \
-v $HOME/myZK/zk3/logs:/datalog \
zookeeper:3.7.1
验证
# 进入容器内
docker exec -it zk-cluster-1 /bin/bash
# 查看状态
./bin/zkServer.sh status
参考资料
热门推荐
“加油”这个词,发源于这个地方→
亳州十大特色名小吃,除了中药还有啥?你吃过几样?
楚汉争霸时项羽从一开始就输了?为何这么说?
防止肥胖,要像“猪”一样吃饭
何谓五礼:中国的传统礼仪与现代社会的融合
梨涡面相代表什么 有梨涡的人命好吗
宿舍党必看:微波炉和电煮锅蒸米饭完全攻略
夫妻离婚孩子监护权:法律实务中的争议与解决方案
王楚钦/孙颖莎巴黎混双夺冠之路技战术运用分析
就业失业登记证办理指南
踢脚暖和地暖(踢脚暖到底值不值得装)
海参的营养成分
面颊的玫瑰:聊聊酒渣鼻的有效护理
选择游戏鼠标全攻略:从模具、传感器到重量一应俱全
无锡物业费打折多长时间?物业费是否包含停车费?
教会管理组织如何建立?《中国基督教教会规章制度》这样说
胰腺囊肿的症状表现及临床特征
豆浆、豆奶和豆乳 如何选择
肺不好,瞒不住!出现“2痛2痒2多”的症状,多半是肺部出“问题”了
氨氯地平、硝苯地平、拉西地平、贝尼地平……一文盘点12种地平类降压药区别!
手机上短焦指纹与超声波指纹有什么不同,哪种指纹识别最实用?
心率40有生命危险吗?专业医生详细解答
比患病更可怕的是“病耻感”,该如何克服它?
被烫伤能用冰块敷吗
心腹爪牙相关的成语
职称英语考试中如何分析句子结构
眼睛充血时,是热敷还是冷敷?一文详解正确处理方法
小便有异味是什么原因
车辆异地提档过户流程详解
高权重账号:社交媒体时代的营销利器