分布式学习(三)用docker搭建zookeeper集群

本文介绍了如何使用Docker来搭建Zookeeper集群,通过创建镜像、配置集群环境和进行测试,展示了一种轻量级模拟集群的方法。在CentOS镜像基础上,安装JDK和Zookeeper,设置集群配置,最后验证了集群的正确运行。
摘要由CSDN通过智能技术生成

分布式学习(三)用docker来搭建自己的zookeeper集群!

前言

作为一个穷学生,自然是租不起集群环境的,租不起咋办呢?一般都有两种解决方案来模拟集群

  1. 搭建虚拟机来模拟集群: 这种方式能最大程度的模拟在单机下模拟集群,但是极其消耗磁盘,我果断放弃
  2. 用端口号来模拟多主机:这种方式只是单纯的执行了多个zookeeper应用

作为轻量级的虚拟机,我选择容器来模拟集群环境,有如下优点:

  1. 部署方便: 制作一个镜像,然后创建容器即可,不用对每一个容器再安装环境
  2. 轻量:一个容器也就占用几百兆

注:本博文只是我作为小白的尝试,如有错误,多谢指正

镜像制作

首先,我们需要制作一个安装了zookeeper的镜像,dockerhub上有现成的镜像,但是为了实践,我决定自己做一个

  1. 先pull一个centos7镜像来作为我们的底层镜像
docker pull centos:7.0
docker run -it --name zkc centos:7.0  /bin/bash # 创建并进入容器
  1. 在这个容器中搭建我们的zk环境

a. 搭建jdk环境(这里就不罗嗦了)

b. 搭建zookeeper环境(这里网上也一大堆)

c. 安装网络包net-tools(后面需要用到)

yum -y install net-tools

d.打包为镜像文件

docker commit zkc zk:1.0

看一下:

docker images应该能看到我们制作的镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6TAcUDJ-1618027779131)(uploads/image-20210409132753603.png)]

配置集群

接下来配置我们的集群环境

首先创建zookeeper中需要的文件在我们宿主机上

mkdir /usr/zookeeper/zk1 /usr/zookeeper/zk2 /usr/zookeeper/zk3  # 为三个节点都创建
mkdir /usr/zookeeper/conf  # 三个节点共享配置文件

然后在每个节点目录下分别创建data目录和logs目录,并在data目录下创建文件myid并分别写上 0, 1, 2

在conf文件夹中创建zoo.cfg

创建三个容器,并挂载以上文件夹,还要映射一下端口:

docker run -v /usr/zookeeper/zk1/data:/usr/zookeeper/data -v /usr/zookeeper/zk1/logs:/usr/zookeeper/logs -v  /usr/zookeeper/conf:/usr/zookeeper/conf -p 2001:2888  -p 3001:3888 --name zk1 -d -it  zk /bin/bash 
docker run -v /usr/zookeeper/zk2/data:/usr/zookeeper/data -v /usr/zookeeper/zk2/logs:/usr/zookeeper/logs -v  /usr/zookeeper/conf:/usr/zookeeper/conf -p 2002:2888  -p 3002:3888 --name zk2 -d -it  zk /bin/bash 
docker run -v /usr/zookeeper/zk3/data:/usr/zookeeper/data -v /usr/zookeeper/zk3/logs:/usr/zookeeper/logs -v  /usr/zookeeper/conf:/usr/zookeeper/conf -p 2003:2888  -p 3003:3888 --name zk3 -d -it  zk /bin/bash 

然后分别在容器中查看一下该容器的ip地址

ifconfig

在zoo.cfg中写入配置文件:

tickTime=2000
initLimit=10
syncLimit=5
dataLogDir=/usr/zookeeper/logs
dataDir=/usr/zookeeper/data
clientPort=2181

server.0=172.17.0.2:2001:3001 // 这里的地址为你docker容器的ip地址
server.1=172.17.0.3:2002:3002
server.2=172.17.0.4:2003:3003

至此zookeeper集群搭建完毕!

测试!

我们来试一下

开三个终端,分别进入三个容器中:

然后进入该容器的zookeeper/bin目录,运行服务:

zkServer.sh start

然后运行客户端:

zkClient.sh -server localhost:2181

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-huPWPtvx-1618027779133)(uploads/image-20210409134636491.png)]

进入成功!

然后我们试一试在一个节点中添加数据:

create /qq 123

然后在另一个节点中查看一下:
在这里插入图片描述

ok,搭建成功!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装Docker中的Zookeeper集群,您需要按照以下步骤进行操作: 1. 首先,您需要在Docker中安装Zookeeper镜像。您可以使用以下命令来安装: docker pull zookeeper 2. 接下来,您需要创建一个Docker网络,以便Zookeeper容器可以相互通信。您可以使用以下命令来创建网络: docker network create zookeeper-net 3. 然后,您需要创建Zookeeper容器,每个容器都运行在不同的主机上。您可以使用以下命令来创建容器: docker run --name zoo1 --network zookeeper-net -p 2181:2181 -d zookeeper docker run --name zoo2 --network zookeeper-net -p 2182:2181 -e ZOO_MY_ID=2 -e ZOO_SERVERS="server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888" -d zookeeper docker run --name zoo3 --network zookeeper-net -p 2183:2181 -e ZOO_MY_ID=3 -e ZOO_SERVERS="server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888" -d zookeeper 在上面的命令中,我们创建了个容器,分别命名为zoo1、zoo2和zoo3。容器zoo1将运行在默认端口2181上,而容器zoo2和zoo3将运行在端口2182和2183上。容器zoo2和zoo3还设置了它们的ID和服务器列表。 4. 最后,您可以使用以下命令来检查Zookeeper集群是否正常工作: docker exec -it zoo1 zkCli.sh 在Zookeeper命令行界面中,您可以使用“stat”命令来查看集群状态。如果一切正常,您应该能够看到所有Zookeeper服务器的详细信息。 这就是安装DockerZookeeper集群的步骤。希望这可以帮助您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值