单机模拟搭建 Zookeeper 集群

该文详细介绍了如何搭建Zookeeper集群,包括下载已编译的apache-zookeeper-3.6.3-bin.tar.gz,设置不同端口,修改配置文件如dataDir和dataLogDir,创建myid文件,启动服务,并编写shell脚本来简化集群的启动、停止和状态检查操作。
摘要由CSDN通过智能技术生成

1. 准备

官网下载:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

注意:

  • zookeeper 从 3.5 版本以后,命名就发生了改变
  • apache-zookeeper-X.X.X.tar.gz 这样命名的,都是未编译的;如果我们下载的是未编译的包,那么在启动时会报错:找不到或无法加载主类
  • apache-zookeeper-X.X.X-bin.tar.gz 这样命名的,才是已编译的包,我们要下载的是这种已编译的

2. 文件结构

此次搭建的 zookeeper 集群,端口分别为:2181,2182,2183

在自己想要安装的目录中新建 2181,2182,2183 三个文件夹,将刚刚下载的压缩包分别解压在上述的3个目录下

然后在每个文件夹下新建用于存储数据的 data 目录和存储日志数据的 dataLog 目录,如下:
在这里插入图片描述

3. 修改配置文件

进入 config 目录,拷贝 zoo_sample.cfg 文件,将其重命名为 zoo.cfg

修改配置:

  • 2181
# 配置数据存储的目录
dataDir=/home/zookeeper/2181/data

# 配置日志存储的目录
dataLogDir=/home/zookeeper/2181/dataLog

# 端口
clientPort=2181

# 集群配置
server.1=192.168.56.129:2888:3888
server.2=192.168.56.129:2788:3788
server.3=192.168.56.129:2688:3688
  • 2182
# 配置数据存储的目录
dataDir=/home/zookeeper/2182/data

# 配置日志存储的目录
dataLogDir=/home/zookeeper/2182/dataLog

# 端口
clientPort=2182

# 集群配置
server.1=192.168.56.129:2888:3888
server.2=192.168.56.129:2788:3788
server.3=192.168.56.129:2688:3688
  • 2183
# 配置数据存储的目录
dataDir=/home/zookeeper/2183/data

# 配置日志存储的目录
dataLogDir=/home/zookeeper/2183/dataLog

# 端口
clientPort=2183

# 集群配置
server.1=192.168.56.129:2888:3888
server.2=192.168.56.129:2788:3788
server.3=192.168.56.129:2688:3688

如果大家不想关闭防火墙的话,记得要开放集群配置中的6个端口

firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
...

4. 生成 myid 文件

分别进入 2181,2182,2183 中的 data 文件夹

新建名为 myid 的文件

2181 data 文件夹中的 myid 文件的值为 1
2182 data 文件夹中的 myid 文件的值为 2
2183 data 文件夹中的 myid 文件的值为 3

其实只要每个 myid 文件中的值不一样即可

5. 启动

进入放置 2181,2182,2183 的文件夹
分别输入(看自己具体的文件夹叫什么名字)

2181/zookeeper-3.6.3/bin/zkServer.sh start
2182/zookeeper-3.6.3/bin/zkServer.sh start
2183/zookeeper-3.6.3/bin/zkServer.sh start

启动效果并使用 jps 命令查看:

在这里插入图片描述
当启动完上述三个节点,再输入 jps 命令,可以看到有三个 QuorumPeerMain


启动完上述的3个节点后,我们可以查看三个节点中的哪个成为了主节点
输入:

2181/zookeeper-3.6.3/bin/zkServer.sh status

在这里插入图片描述

2182/zookeeper-3.6.3/bin/zkServer.sh status

在这里插入图片描述

2183/zookeeper-3.6.3/bin/zkServer.sh status

在这里插入图片描述

Mode 为 leader 的,就意味着被选举为主节点

6. 编写 shell 脚本

当完成上述步骤后,Zookeeeper 集群就已经搭建好了
但是,不知道大家有没有觉得,每一个节点启动都要输入一次命令,关闭也要一个个关闭,略显麻烦

我们可以编写个简单的 shell 脚本来一键启动和关闭集群

进入 /usr/bin 目录,新建 zookeeper.sh 文件
shell 脚本如下:

#!/bin/bash

case $1 in
"start"){
        /home/zookeeper/2181/zookeeper-3.6.3/bin/zkServer.sh start
	/home/zookeeper/2182/zookeeper-3.6.3/bin/zkServer.sh start
        /home/zookeeper/2183/zookeeper-3.6.3/bin/zkServer.sh start
}
;;
"stop"){
        /home/zookeeper/2181/zookeeper-3.6.3/bin/zkServer.sh stop
	/home/zookeeper/2182/zookeeper-3.6.3/bin/zkServer.sh stop
        /home/zookeeper/2183/zookeeper-3.6.3/bin/zkServer.sh stop
}
;;
"status"){
	/home/zookeeper/2181/zookeeper-3.6.3/bin/zkServer.sh status
	/home/zookeeper/2182/zookeeper-3.6.3/bin/zkServer.sh status
        /home/zookeeper/2183/zookeeper-3.6.3/bin/zkServer.sh status
}
;;
esac

然后赋予文件权限

chmod 777 zookeeper.sh

编写好脚本后,以后想一键启动集群,只需进入 /usr/bin/ 目录,输入如下命令:

./zookeeper.sh start

在这里插入图片描述

# 查看状态
./zookeeper.sh status

# 关闭集群
./zookeeper.sh stop
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LF3_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值