CentOS 7/8 部署Zookeeper叢集
阿新 • • 發佈:2020-09-11
首先要安裝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