1. 程式人生 > 實用技巧 >CentOS 7/8 部署Zookeeper叢集

CentOS 7/8 部署Zookeeper叢集

首先要安裝JDK,參考https://www.cnblogs.com/dotqin/p/13560419.html

環境說明:三臺百度雲伺服器,內網IP分別為:192.168.32.36、192.168.32.37、192.168.32.38, 不開放公網IP訪問

分別在三臺伺服器上執行以下操作:

1.建立目錄及下載解壓

mkdir /usr/local/zookeeper
cd /usr/local/zookeeper/
wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz
mv apache-zookeeper-3.6.1-bin zookeeper-3.6.1

2.設定環境變數

vim /etc/profile
# 在檔案最後新增以下內容
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.6.1
export PATH=$ZOOKEEPER_HOME/bin:$PATH

# 使環境變數生效
source /etc/profile

3.設定zkEnv.sh

vim /usr/local/zookeeper/zookeeper-3.6.1/bin/zkEnv.sh
# 在ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"上面新增JAVA_HOME設定 為了之後新增到systemctl服務管理
JAVA_HOME=/usr/local/java/jdk1.8.0_261

4.建立目錄及myid檔案

mkdir -p /tmp/zookeeper/data
mkdir -p /tmp/zookeeper/log

# 在/tmp/zookeeper/data下建一個myid檔案並寫入一個數值比如0做為伺服器編號,這裡三臺伺服器分別對應 0 1 2
echo 0 > /tmp/zookeeper/data/myid

5.編輯配置檔案

cd /usr/local/zookeeper/zookeeper-3.6.1/conf/
cp zoo_sample.cfg zoo.cfg

vim zoo.cfg
# 設定以下內容(三臺一樣)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
clientPort=2181
# 以及叢集配置(三臺一樣) server.0=192.168.32.36:2888:3888 server.1=192.168.32.37:2888:3888 server.2=192.168.32.38:2888:3888
# 叢集配置可以抽象出一個公式,即server.A=B:C:D,其中A是一個數字,代表伺服器的編號,就是前面設定的myid檔案中的值,叢集中每臺伺服器的編號必需唯一;B代表伺服器的IP地址,C表示伺服器與叢集中的leader伺服器交換資訊的埠;D表示選舉時伺服器之間互相通訊的埠。

6.新增到服務管理

vim /usr/lib/systemd/system/zookeeper.service
# 新增以下內容
[Unit]
Description=zookeeper-3.6.1
After=syslog.target network.target

[Service]
Type=forking
TimeoutSec=120

User=root

ExecStart=/usr/local/zookeeper/zookeeper-3.6.1/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/zookeeper-3.6.1/bin/zkServer.sh stop
ExecReload=/usr/local/zookeeper/zookeeper-3.6.1/bin/zkServer.sh restart

Restart=always

[Install]
WantedBy=multi-user.target

7.設定服務生效及開機自啟動

systemctl daemon-reload
systemctl enable zookeeper.service

8.啟動zookeeper

systemctl start zookeeper
systemctl status zookeeper