---
url: https://chenlj.top/md/install/zookeeper/zookeeper-group.md
---
# zookeeper 集群部署（3 个节点）

## 一、集群规划

在 node1、node2 和 node3 三个节点上都部署 Zookeeper。

## 二、下载

```shell
# 下载zookeeper-华为镜像站下载的3.6.3版本
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.6.3-bin.tar.gz --no-check-certificate

```

## 三、安装

```shell
# 解压
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /usr/local/
# 修改文件夹名称
mv /usr/local/apache-zookeeper-3.6.3-bin/ /usr/local/zookeeper

```

## 四、配置、启动

### 1、创建配置文件，修改共同配置

```shell
# 复制配置文件模板-cp前斜杠表示强制复制
\cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
mkdir -p /usr/local/zookeeper/data
#注释掉原有的配置
sed "s/^dataDir=.*/#&/" /usr/local/zookeeper/conf/zoo.cfg  -i
sed "s/^quorumListenOnAllIPs=.*/#&/" /usr/local/zookeeper/conf/zoo.cfg  -i
sed "s/^server.1=.*/#&/" /usr/local/zookeeper/conf/zoo.cfg  -i
sed "s/^server.2=.*/#&/" /usr/local/zookeeper/conf/zoo.cfg  -i
sed "s/^server.3=.*/#&/" /usr/local/zookeeper/conf/zoo.cfg  -i
#加入新配置
grep -q '^#dataDir=' /usr/local/zookeeper/conf/zoo.cfg && sed -i '/^#dataDir=.*/a\dataDir=/usr/local/zookeeper/data' /usr/local/zookeeper/conf/zoo.cfg || echo 'dataDir=/usr/local/zookeeper/data' >> /usr/local/zookeeper/conf/zoo.cfg
grep -q '^#quorumListenOnAllIPs=' /usr/local/zookeeper/conf/zoo.cfg && sed -i '/^#quorumListenOnAllIPs=true' /usr/local/zookeeper/conf/zoo.cfg || echo 'quorumListenOnAllIPs=true' >> /usr/local/zookeeper/conf/zoo.cfg
grep -q '^#server.1=' /usr/local/zookeeper/conf/zoo.cfg && sed -i '/^#server.1=.*/a\server.1=node1:2888:3888' /usr/local/zookeeper/conf/zoo.cfg || echo 'server.1=node1:2888:3888' >> /usr/local/zookeeper/conf/zoo.cfg
grep -q '^#server.2=' /usr/local/zookeeper/conf/zoo.cfg && sed -i '/^#server.1=.*/a\server.2=node2:2888:3888' /usr/local/zookeeper/conf/zoo.cfg || echo 'server.2=node1:2888:3888' >> /usr/local/zookeeper/conf/zoo.cfg
grep -q '^#server.3=' /usr/local/zookeeper/conf/zoo.cfg && sed -i '/^#server.1=.*/a\server.3=node3:2888:3888' /usr/local/zookeeper/conf/zoo.cfg || echo 'server.3=node3:2888:3888' >> /usr/local/zookeeper/conf/zoo.cfg

```

### 2、不同的服务器不同配置

（1）配置服务器编号:id 分别设置为 1、2、3

```shell
# node1
echo '1' > /usr/local/zookeeper/data/myid
# node2
echo '2' > /usr/local/zookeeper/data/myid
# node3
echo '3' > /usr/local/zookeeper/data/myid

```

### 3、启动 zookeeper

```shell
# 启动命令
cd /usr/local/zookeeper && ./bin/zkServer.sh start
# 查看状态
cd /usr/local/zookeeper && ./bin/zkServer.sh status
#============修改环境变量后============
# 启动命令
zkServer.sh start
# 查看状态
zkServer.sh status

```

## 五、配置环境变量（全局可以使用 zookeeper 命令）

```shell
cat >>/etc/profile.d/zookeeper.sh <<EOF
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=\$PATH:\$ZOOKEEPER_HOME/bin
EOF
source /etc/profile

```

## 六、配置远程访问

### 1、开启防火墙端口

```shell
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --reload

```

## 七、设置开机自启

```shell
#待完善
```
