Zookeeper集群搭建指北
1.前置环境
实例1 | 实例1 | 实例1 | |
---|---|---|---|
IP地址 | 192.168.2.128 |
192.168.2.129 |
192.168.2.130 |
OS版本 | CentOS Linux release 7.9.2009 (Core) |
CentOS Linux release 7.9.2009 (Core) |
CentOS Linux release 7.9.2009 (Core) |
ZK版本 | zookeeper-3.8.0 |
zookeeper-3.8.0 |
zookeeper-3.8.0 |
Java版本 | JDK8 |
JDK8 |
JDK8 |
配置 | 4C16G ,存储300GB |
4C16G ,存储300GB |
4C16G ,存储300GB |
2.安装步骤
2.1 磁盘挂载(三个节点均需操作)
# 查看磁盘
[root@zookeeper01 ~]# fdisk -l
磁盘 /dev/vda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b1f33
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 2099199 1048576 83 Linux
/dev/vda2 2099200 83886079 40893440 8e Linux LVM
磁盘 /dev/vdb:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
# 创建pv卷
[root@zookeeper01 ~]# pvcreate /dev/vdb
Physical volume "/dev/vdb" successfully created.
# 创建vg
[root@zookeeper01 ~]# vgcreate lg_data /dev/vdb
Volume group "kafka" successfully created
# 创建lv
[root@zookeeper01 ~]# lvcreate -l 100%VG -n data lg_data
Logical volume "data" created.
# 格式化分区为xfs
[root@zookeeper01 ~]# mkfs.xfs /dev/lg_data/data
# 创建数据目录
[root@zookeeper01 ~]# mkdir /data
# 挂载分区
[root@zookeeper01 ~]# mount /dev/lg_data/data /data/
# 开机启动
[root@zookeeper01 ~]# echo '/dev/lg_data/data /data xfs defaults 0 0' >> /etc/fstab
在三台实例上重复上述操作
2.2 JDK安装(三个节点均需操作)
2.2.1 JDK下载
# 下载JDK(从Github下载,下载链接可能会失效,可以从该网站获取 https://adoptium.net/zh-CN/)
[root@zookeeper01 /data]# wget -c 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u352b08.tar.gz' -O /data/OpenJDK8U-jdk_x64_linux_hotspot_8u352b08.tar.gz
# 解压
[root@zookeeper01 data]# tar -xvf OpenJDK8U-jdk_x64_linux_hotspot_8u352b08.tar.gz
# 创建JDK目录并移动解压文件到该目录
[root@zookeeper01 data]# mkdir /usr/local/java && mv jdk8u352-b08/ /usr/local/java/
2.2.2 配置并验证JDK
- 配置环境变量,编辑文件:
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/java/jdk8u352-b08
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
- 加载环境变量
[root@zookeeper01 data]# source /etc/profile
[root@zookeeper01 data]# echo $JAVA_HOME
2.3 ZK安装(三个节点均需操作)
2.3.1 下载安装包
[root@zookeeper01 data]# wget -c 'https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz' -O /data/apache-zookeeper-3.8.0-bin.tar.gz
2.3.2 解压
[root@zookeeper01 data]# tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz
[root@zookeeper01 data]# mv /data/apache-zookeeper-3.8.0-bin /data/zookeeper
2.3.3 配置
[root@zookeeper01 data]# cd /data/zookeeper/conf
# 添加zookeeper配置文件
[root@zookeeper01 conf]# cp zoo_sample.cfg zoo.cfg
# 创建数据存放目录
[root@zookeeper01 conf]# mkdir -p /data/zookeeper/data
[root@zookeeper01 conf]# vim zoo.cfg
# 配置数据目录
dataDir=/data/zookeeper/data
# 配置服务节点信息
server.1=zookeeper01:2188:2888
server.2=zookeeper02:2188:2888
server.3=zookeeper02:2188:2888
# 配置文件保存退出后,进入data目录
[root@zookeeper01 conf]# cd /data/zookeeper/data
# 生成myid文件,指定myid服务号,注意:每个节点的myid不可相同
[root@zookeeper01 conf]# echo "1" > /data/zookeeper/data/myid
2.3.4 关闭防火墙(根据环境不同,可选择性执行)
若需要关闭防火墙,在三台实例上重复上述操作
[root@zookeeper01 conf]# systemctl stop firewalld
[root@zookeeper01 conf]# systemctl disable firewalld
2.3.5 配置Systemctl zookeeper服务
#创建zookeeper服务文件
[root@zookeeper01 conf]# vim /usr/lib/systemd/system/zookeeper.service
[Unit]
Description=zookeeper.service
After=network.target
[Service]
Type=forking
Environment="PATH=/usr/local/java/jdk8u352-b08/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
User=root
Group=root
ExecStart=/data/zookeeper/bin/zkServer.sh start
ExecStop=/data/zookeeper/bin/zkServer.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
- 刷新systemctl
[root@zookeeper01 conf]# systemctl daemon-reload
- 设置zookeeper服务开机自启
[root@zookeeper01 conf]# systemctl enable zookeeper
- 启动zookeeper
[root@zookeeper01 conf]# systemctl start zookeeper
在三台实例上重复上述操作
2.3.6 其它操作
- 关闭zookeeper实例
systemctl stop zookeeper
- 重启zookeeper实例
systemctl restart zookeeper
- 查看zookeeper实例状态
systemctl status zookeeper
2.3.7 查看集群状态
实例1、实例2、实例3分别查看集群状态
[root@zookeeper01 conf]# /data/zookeeper/bin/zkServer.sh status
查询结果如下:
[root@zookeeper01 bin]# /data/zookeeper/bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@kafka-02 data]# /data/zookeeper/bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
[root@kafka-03 data]# /data/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
以上,zookeeper集群搭建完成。
Zookeeper集群搭建指北
https://www.gmtgo.com/39014.html