Zookeeper 集群搭建|学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 快速学习 Zookeeper 集群搭建

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)Zookeeper 集群搭建】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12400


Zookeeper 集群搭建


内容介绍:

一、准备工作

二、配置集群

三、启动集群

本节搭建 Dubbo 的注册中心 Zookeeper 的集群。

为了提高 Zookeeper 的高可用,通常在企业中 Zookeepe 是以集群的方式去进行搭建。搭建集群总共去搭建3个节点来组成一个集群。搭建3个节点实际上在生产环境中通常3个节点去部署到3台不同的服务器上。此次不需要搭建3个服务器:搭建伪集群。

伪集群是在一个节点上搭建3个 Zookeeper 节点。若之后想要搭建真正集群,只需要切换ip地址为对应的服务器地址即可。

搭建 Zookeeper 集群分为三步:第一步准备工作,第二步配置集群,第三步启动集群。


一、准备工作

1.安装 JDK

2.将 Zookeeper 上传到服务器

3.解压 Zookeeper,并创建 data 目录,将 conf 下的 zoo_sample.cfg 文件改名为 zoo.cfg

4.建立/user/local/zookeeper-cluster ,将解压后的 Zookeeper 复制到以下三个目录

本机已经准备好了一台服务器 Zookeeper,为了区分服务器作用,首先来安装 JDK,演示的服务器已经远程连接,再来重新打开,通过 PuTTY 连接。

image.png

服务器的 ip 地址在本机是140,通过本机140连接上,输入用户名密码。

可以准备自己的一台服务器进行搭建。安装 JDK 前本机已经安装好了 java 服务,输入 java -version,java 已经安装成功并且配置了环境变量。

image.png

接着将 Zookeeper 上传到服务器,Zookeeper 安装包在提供资料里,此处本机已经上传到服务器,输入 cd /user/

ll

cd local/

clear

ls

cd zookeeper-cluster/

ll

在该文件夹中存在刚才上传的安装包,上传后首先对安装包进行解压,输入

tar -zvxf zookeeper-3.4.6.tar.gz

解压后输入 ls

就可以看到解压后的目录:

zookeeper-3.4.6  zookeeper-3.4.6.tar.gz

再来输入cd zookeeper-3.4.6

ll

cd conf/

ll

对配置文件进行重命名,zoo_sample.cfg 配置文件是进行一个示例,在使用时参考配置文件进行处理即可。进行重命名,输入 mv zoo_sample.cfg zoo.cfg

ll

重命名完成后再来搭建3个节点的集群,在 zookeeper-cluster 目录下,输入

cd ..

cd ../

pwd

结果显示/usr/local/zookeeper-cluster

创建输入mkdir zookeeper-1

mkdir zookeeper-2

mkdir zookeeper-3

ls

创建好后可以看到结果显示

image.png

接下来要将解压后的 zookeeper-3.4.6文件夹放到此处,输入

cp -rf zookeeper-3.4.6  zookeeper-1

可以进入查看,输入cd zookeeper-1

ll

继续回到刚才目录,输入clear

cd ..

ls

cp -rf zookeeper-3.4.6  zookeeper-2

cp -rf zookeeper-3.4.6  zookeeper-3

复制完成后需要在配置文件中完成一些配置,由于现在是在一个服务器上搭建3个节点的集群,所以默认端口号进行默认修改进行区分,分别为2181 2182 2183

输入clear

cd zookeeper-1

ll

cd zookeeper-3.4.6

cd conf/

ll

vi zoo.conf

进入配置文件后找到 clientPort,clientPort 默认为2181,还存在 dataDir=/tmp/zookeeper 当前存放数据文件夹的位置

先退出,输入cd ..

cd ..

ll

pwd

结果显示当前在 zookeeper-1目录,在该目录中创建一个 data 目录,输入

mkdir data

继续编辑配置文件,输入

vi zookeeper-3.4.6/conf/zoo.cfg

进入后找到 dataDir,将刚才创建的目录名称写入,一般在 Linux 中进行目录编写时可以暂时回到 shell 命令下,因为可以通过 pwd 快速得到目录。所以现在先暂时退出当前 vi 的模式,进入到 data 下,输入

cd data/

pwd

结果显示/usr/local/zookeeper-cluster/zookeeper-1/data

刚才从 vi 模式中退出,若想要快速返回可以使用 ctrl+d,进入后将 dataDir 后改为

/usr/local/zookeeper-cluster/zookeeper-1/data

以上第一个节点配置完成,配置了端口号和 dataDir。按照同样方式配置 zookeeper-2和 zookeeper-3,输入

mkdir zookeeper-2/data

mkdir zookeeper-3/data

vi zookeeper-2/zookeeper-3.4.6/conf/zoo.cfg

进入后将端口号修改为2182,dataDir后改为

/usr/local/zookeeper-cluster/zookeeper-2/data

vi zookeeper-3/zookeeper-3.4.6/conf/zoo.cfg

进入后将端口号修改为2183,dataDir 后改为

/usr/local/zookeeper-cluster/zookeeper-3/data

配置成功后来检查,输入cd zookeeper-1/

ll

zookeeper-2、zookeeper-3类似,结果正常

image.png

准备工作已经完成,如果此处配置的是真实的生产环境集群,3个节点就是在不同的服务器上,端口号就不必修改。


二、配置集群

1.在每个 zookeeper 的 data 目录下创建一个 myid 文件,内容分别是1、2、3(1、2、3代表集群中节点的id)。

输入clear

cd ..

回到集群根目录创建文件,输入

touch zookeeper-1/data/myid

touch zookeeper-2/data/myid

touch zookeeper-3/data/myid

创建成功后编辑每一个内容,输入vi zookeeper-1/data/myid

输入1

退出后输入vi zookeeper-2/data/myid

输入2

退出后输入vi zookeeper-3/data/myid

输入3

配置完成后来进行检查,输入

cat zookeeper-1/data/myid

cat zookeeper-2/data/myid

cat zookeeper-3/data/myid

2.在每一个 zookeeper 的 zoo.cfg 配置客户端访问端口(clientPort)和集群服务器IP列表。集群服务器IP列表如下

server.1=192.168.25.140:2881:3881

server. 2=192.168.25.140:2882:3882

server. 3=192.168.25.140:2883:3883

上述除了 ip 地址还存在两个端口号,第一个端口是服务器之间通信端口,第二个是服务器之间投票选举端口。

Zookeeper 集群是主从结构,主节点就是通过投票选出,所以要配置每一个节点端口号。

输入vi zookeeper-1/zookeeper-3.4.6/conf/zoo.cfg

进入后在最下面添加上代码

server.1=192.168.25.140:2881:3881

server. 2=192.168.25.140:2882:3882

server. 3=192.168.25.140:2883:3883

退出后输入vi zookeeper-2/zookeeper-3.4.6/conf/zoo.cfg

进入后在最下面添加上代码

server.1=192.168.25.140:2881:3881

server. 2=192.168.25.140:2882:3882

server. 3=192.168.25.140:2883:3883

退出后输入vi zookeeper-3/zookeeper-3.4.6/conf/zoo.cfg

进入后在最下面添加上代码

server.1=192.168.25.140:2881:3881

server. 2=192.168.25.140:2882:3882

server. 3=192.168.25.140:2883:3883

保存完成后配置集群完成。


三、启动集群

之后来启动集群。

输入./zookeeper-1/zookeeper-3.4.6/bin/zkServer.sh start

启动后启动第二个,

输入./zookeeper-2/zookeeper-3.4.6/bin/zkServer.sh start

启动后启动第三个,

输入./zookeeper-3/zookeeper-3.4.6/bin/zkServer.sh start

启动完成后哪些节点是主节点,哪些节点是从节点。输入

./zookeeper-1/zookeeper-3.4.6/bin/zkServer.sh status

可以看到结果显示Mode:follower代表跟随者,是从节点

输入

./zookeeper-2/zookeeper-3.4.6/bin/zkServer.sh status

可以看到结果显示Mode:Leader是主节点

输入

./zookeeper-3/zookeeper-3.4.6/bin/zkServer.sh status

可以看到结果显示 Mode:follower 代表跟随者,是从节点.

以上就搭建好了 zookeeper 集群。总结搭建 zookeeper 集群第一步准备工作:安装 JDK;

将 Zookeeper 上传到服务器;解压 Zookeeper,并创建 data 目录,将 conf 下的 zoo_sample.cfg 文件改名为zoo.cfg;创建3个目录分别代表3个节点;将当前每一个 zookeeper 复制到每一个目录下更改端口号,配置当前数据下地址。

第二步配置集群,先配置节点 id,再将节点连接起来

image.png

第三步是启动集群,分别用 bin/zkServer.sh 执行 start 命令进行启动。

image.png

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
Java Shell Linux
Zookeeper单机&集群安装
Zookeeper单机&集群安装
35 1
|
2月前
|
存储 分布式计算 资源调度
Hadoop【环境搭建 04】【hadoop-2.6.0-cdh5.15.2.tar.gz 基于ZooKeeper搭建高可用集群】(部分图片来源于网络)
【4月更文挑战第1天】Hadoop【环境搭建 04】【hadoop-2.6.0-cdh5.15.2.tar.gz 基于ZooKeeper搭建高可用集群】(部分图片来源于网络)
80 3
|
10天前
|
Java 网络安全
分布式系统详解--框架(Zookeeper-简介和集群搭建)
分布式系统详解--框架(Zookeeper-简介和集群搭建)
25 0
|
2月前
|
存储 Java Linux
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群
136 1
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
|
2月前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
52 1
|
2月前
|
存储 Java 网络安全
ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
【4月更文挑战第8天】ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
30 1
|
2月前
|
架构师 Shell Apache
Zookeeper集群搭建
Zookeeper集群搭建
|
2月前
|
Java 网络安全 Apache
搭建Zookeeper集群:三台服务器,一场分布式之舞
搭建Zookeeper集群:三台服务器,一场分布式之舞
162 0
|
2月前
|
消息中间件 存储 Kafka
Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
159 1
|
2月前
|
算法 Java Linux
zookeeper单机伪集群集群部署
zookeeper单机伪集群集群部署
98 0