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
参考资料
热门推荐
现金流量表的填写方法是什么
探秘《Among Us》:信任与背叛的宇宙之旅
《Among Us》仅限快速聊天怎么改?四种实用设置方法详解
制作简历怎么在word文档加着重号
一盘家常菜后半生都要靠透析维持!这7种食物最好焯水再吃!
在raid模式下如何安装系统
虚拟现实技术在慢性阻塞性肺疾病患者康复中的创新应用
急性呼吸道感染防治科普20问:如何应对秋冬季多病原流行?
经济发展对房价的长期影响
无民事行为能力人与限制民事行为能力人的法律问题研究
一级、二级、三级能效空调,有什么区别
雅思口语实战模拟三大招
Excel中提取不同工作表数据的多种方法
凡事有目标,件件有结果,事事有反馈
研究生论文开题报告攻略
孙中山《实业计划》:中国近代化蓝图
黄连解毒丸的功效与使用注意事项
数说节气谚语:春意萌动冬将尽 立春过后真的一天暖一天吗?
同等学力申硕辅导:价值、效用与报名指南
AI产品需求如何描述
回家过年 一种诗意的信仰
生物有机肥实验室方案概述
书香氛围营造:图书馆室内装饰设计!
副校长道歉!知名大学丢失氰化物,剂量足以致死250人
万里迢迢跨“西域”的藏红花
计算机网络路由选择协议详解:静态与动态路由的原理与应用
停了抑郁症药还头晕无力怎么办
怎样根据证据认定犯罪行为
牙槽骨吸收是否意味着必须拔牙?深入探讨牙槽骨吸收与拔牙之间的关系
牙掉了会不会出血牙已经松了