目录
- Zookeeper
-
- [1 启动单个Zookeeper实例](#1 启动单个Zookeeper实例)
-
- [1.1 下载Zookeeper安装包并解压](#1.1 下载Zookeeper安装包并解压)
- [1.2 添加环境变量](#1.2 添加环境变量)
- [1.3 修改默认配置](#1.3 修改默认配置)
- [1.4 新建数据存储目录和日志目录](#1.4 新建数据存储目录和日志目录)
- [1.5 启动Zookeeper](#1.5 启动Zookeeper)
- [1.6 停止Zookeeper](#1.6 停止Zookeeper)
- [2 搭建Zookeeper集群](#2 搭建Zookeeper集群)
-
- [2.1 新建集群目录](#2.1 新建集群目录)
- [2.2 配置环境变量](#2.2 配置环境变量)
- [2.3 创建节点目录](#2.3 创建节点目录)
- [2.4 修改配置](#2.4 修改配置)
- [2.5 创建节点ID文件](#2.5 创建节点ID文件)
- [2.6 启动集群](#2.6 启动集群)
- [2.7 停止集群](#2.7 停止集群)
Zookeeper
本文尝试在单机搭建包含有3个节点的Zookeeper集群。
环境:Windows 11 WSL2
Linux发行版本:Ubuntu 22.04.2 LTS
1 启动单个Zookeeper实例
1.1 下载Zookeeper安装包并解压
bash
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz
sudo tar xvf apache-zookeeper-3.8.3-bin.tar.gz -C /usr/local/bin
1.2 添加环境变量
配置环境变量:
bash
vim ~/.bashrc
添加如下内容:
#set Zookeeper env vars
export ZOOKEEPER_HOME=/usr/local/bin/apache-zookeeper-3.8.3-bin
export PATH=PATH:ZOOKEEPER_HOME/bin
加载新的环境变量:
bash
source ~/.bashrc
1.3 修改默认配置
bash
cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
在配置文件中修改数据存储目录:
dataDir=$ZOOKEEPER_HOME/data
1.4 新建数据存储目录和日志目录
bash
sudo mkdir $ZOOKEEPER_HOME/data
sudo chmod -R 777 data
sudo mkdir $ZOOKEEPER_HOME/logs
sudo chmod -R 777 logs
1.5 启动Zookeeper
bash
zkServer.sh start
查看状态:
bash
zkServer.sh status
启动命令行:
bash
zkCli.sh
1.6 停止Zookeeper
停止Zookeeper
bash
zkServer.sh stop
2 搭建Zookeeper集群
2.1 新建集群目录
bash
cd /usr/local/bin
sudo zookeeper-cluster
chmod -R 777 zookeeper-cluster
2.2 配置环境变量
bash
vim ~/.bashrc
export ZK_CLUSTER_HOME /usr/local/bin/zookeeper-cluster
source ~/.bashrc
2.3 创建节点目录
将Zookeeper安装目录复制3份:
bash
cp -r apache-zookeeper-3.8.3-bin zookeeper-cluster/zookeeper-1
cp -r apache-zookeeper-3.8.3-bin zookeeper-cluster/zookeeper-2
cp -r apache-zookeeper-3.8.3-bin zookeeper-cluster/zookeeper-3
清理之前单实例产生的数据:
bash
sudo rm -rf zookeeper-cluster/zookeeper-1/data
sudo rm -rf zookeeper-cluster/zookeeper-2/data
sudo rm -rf zookeeper-cluster/zookeeper-3/data
sudo mkdir zookeeper-cluster/zookeeper-1/data
sudo mkdir zookeeper-cluster/zookeeper-2/data
sudo mkdir zookeeper-cluster/zookeeper-3/data
如果当前账号没有写权限,需要赋权限:
bash
sudo chmod -R 777 zookeeper-cluster/zookeeper-1
sudo chmod -R 777 zookeeper-cluster/zookeeper-2
sudo chmod -R 777 zookeeper-cluster/zookeeper-3
2.4 修改配置
首先查询本机IP
bash
ip addr
分别修改3个节点的配置
bash
vim zookeeper-cluster/zookeeper-1/conf/zoo.cfg
dataDir=$ZK_CLUSTER_HOME/zookeeper-1/data
clientPort=2181
#Cluster
server.1=172.26.143.96:2881:3881
server.2=172.26.143.96:2882:3882
server.3=172.26.143.96:2883:3883
bash
vim zookeeper-cluster/zookeeper-2/conf/zoo.cfg
dataDir=$ZK_CLUSTER_HOME/zookeeper-2/data
clientPort=2182
#Cluster
server.1=172.26.143.96:2881:3881
server.2=172.26.143.96:2882:3882
server.3=172.26.143.96:2883:3883
bash
vim zookeeper-cluster/zookeeper-3/conf/zoo.cfg
dataDir=$ZK_CLUSTER_HOME/zookeeper-3/data
clientPort=2183
#Cluster
server.1=172.26.143.96:2881:3881
server.2=172.26.143.96:2882:3882
server.3=172.26.143.96:2883:3883
2.5 创建节点ID文件
bash
echo 1 > zookeeper-cluster/zookeeper-1/data/myid
echo 2 > zookeeper-cluster/zookeeper-2/data/myid
echo 3 > zookeeper-cluster/zookeeper-3/data/myid
2.6 启动集群
分别启动三个Zookeeper实例:
bash
$ZK_CLUSTER_HOME/zookeeper-1/bin/zkServer.sh start
$ZK_CLUSTER_HOME/zookeeper-2/bin/zkServer.sh start
$ZK_CLUSTER_HOME/zookeeper-3/bin/zkServer.sh start
查看节点状态:
bash
ZK_CLUSTER_HOME/zookeeper-1/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/bin/zookeeper-cluster/zookeeper-1/bin/.../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
bash
ZK_CLUSTER_HOME/zookeeper-2/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/bin/zookeeper-cluster/zookeeper-2/bin/.../conf/zoo.cfg
Client port found: 2182. Client address: localhost. Client SSL: false.
Mode: leader
bash
ZK_CLUSTER_HOME/zookeeper-3/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/bin/zookeeper-cluster/zookeeper-3/bin/.../conf/zoo.cfg
Client port found: 2183. Client address: localhost. Client SSL: false.
Mode: follower
2.7 停止集群
bash
$ZK_CLUSTER_HOME/zookeeper-1/bin/zkServer.sh stop
$ZK_CLUSTER_HOME/zookeeper-2/bin/zkServer.sh stop
$ZK_CLUSTER_HOME/zookeeper-3/bin/zkServer.sh stop