docker搭建Zookeeper集群

一、前言

在单台服务器上,部署三个docker容器,搭建zookeeper集群

二、过程

1.准备工作

这里我使用的是docker来搭建zookeeper集群,所以必须提前准备好以下内容:

安装docker
拉取zookeeper镜像(这里我用的是3.4.10版本)

docker pull zookeeper:3.4.10

2.开始搭建

单个节点不能叫做集群,而两个节点也不好做集群,这里我创建了三个zookeeper节点来搭建集群(友情提示:最好是用奇数个节点做集群)
(1)利用镜像启动三个zookeeper容器,分别运行以下三个命令

docker run --name zk01 -p 2181:2181 -d zookeeper:3.4.10
docker run --name zk02 -p 2182:2181 -d zookeeper:3.4.10
docker run --name zk03 -p 2183:2181 -d zookeeper:3.4.10

可以看到我这里已经有了三个zookeeper容器,注意宿主机要用不同的端口去映射zookeeper的2181端口

在这里插入图片描述

(2)查看容器的运行状态(主要是ip地址,以zk01为例)

docker inspect zk01

在这里插入图片描述

在我的机器上zk01、zk02、zk03分别对应

172.17.0.3
172.17.0.4
172.17.0.5

(以个人机器为准)

(3)修改配置文件(这里以容器zk01为例)
进入容器

docker exec -it zk01 bash

查看配置文件

image.png

当启动zookeeper服务时,需要使用的配置文件是zoo.cfg,所以我们修改zoo.cfg

vi zoo.cfg

此时可能vi或者vim命令无法使用,需要在docker容器执行以下命令:

apt-get update
apt-get install vim

image.png

在配置文件中添加

server.1=172.17.0.7:2888:3888
server.2=172.17.0.8:2888:3888
server.3=172.17.0.9:2888:3888

请注意,如果你是在Linux环境下直接搭建zookeeper,请修改本机所在节点的ip为0.0.0.0
例如我当前节点是server.1,则ip修改为0.0.0.0(非docker环境)

server.1=0.0.0.0:2888:3888
server.2=172.17.0.8:2888:3888
server.3=172.17.0.9:2888:3888

这里172.17.0.x表示的是三台zookeeper容器对应的ip地址;2888是zookeeper容器间通信的端口,3888是zookeeper选举投票的端口,一般来说都是固定的
而server后面的数字表示zk节点在容器中的编号,必须是唯一的,所以在这里也必须进行设置

进入到 /data目录

image.png

在这里用vi命令修改myid文件内的值为1即可

image.png

保存退出,查看myid文件的内容

image.png

同理,进入zk02和zk03容器内部修改zoo.cfg和myid文件的内容。

到这里我们就已经配置好了三台zk服务器,接下来只要将其启动起来即可。

三、启动

打开三个窗口,分别进入三个zk容器内部,然后切换到bin目录下

image.png

运行 zkServer.sh 脚本,开启zookeeper服务

image.png

image.png

image.png

可以看到zk集群已经启动起来了,完美!

四、注意事项

如果在运行 zkServer.sh 文件的过程中有什么错误的话,可以查看zookeeper.out文件,里面会有错误提示内容

修改完zoo.cfg配置文件后,需要用 docker restart [容器名] 重启zookeeper容器

转载链接:http://116.62.53.133:8090/archives/%E8%AE%B0%E5%BD%95%E4%BD%BF%E7%94%A8docker%E6%90%AD%E5%BB%BAzookeeper%E9%9B%86%E7%BE%A4%E6%97%B6%E7%9A%84%E8%BF%87%E7%A8%8B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值