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
参考资料
热门推荐
成年人每天喝多少水合适?
深度学习算法优化如何实现?
揭秘 IEEE/ACM Trans/CCF/SCI,谁才是科研界的王者?
2025军校体检项目一览表!附具体项目和要求
北京外国语大学好不好?开放办学实力在线,携手多所国际名校!
中国多中心真实世界研究分析PTCL造血干细胞移植的模式和结局
长城历沧桑 民间话传奇
过度训练综合症:过度锻炼肯定不好
福建人气最高的六个国家森林公园,你去过几个?
如何进行技术面分析?这些分析方法有哪些实际应用?
交通标志知识体系
光学元件--常用的光学反射镜
三支一扶2年后必须走人吗?服务期满后的多种选择
游戏引擎编程需要哪些基本数学知识
专家:月薪三千,过上中等生活,中国4.6亿人达标,网友不淡定了
租房人必看!避雷串串房甲醛,哪种方法更靠谱?
“各美其美”的美丽甘肃建设迈出新步伐
克服紧张心理的妙招有哪些?心理调节方法如何
中国风电、光伏开发潜力评估2024
2025年考研数一各部分分数占比大揭秘
一别如斯,落尽梨花月又西——纳兰性德《采桑子·当时错》
家长必看!15 部宝藏纪录片,让娃更爱语文课!
75%酒精的含义、作用与功效:消毒、降温、防褥疮的全能选手
大便出血警惕6种病
双向奔赴——河南济源城乡融合和乡村振兴奋勇争先
电脑配件选购终极指南:从需求到配置的精准匹配方案
绿豆汤需要提前泡绿豆吗 绿豆汤发酸是什么原因
公司拖欠社保、奖金和加班费怎么办?法律途径全解析
DeepSeek R1大模型本地部署指南:各版本区别与硬件需求详解
如何通过标识区分不同加油站的油品质量?这种区分方法对车辆性能有何影响?