1. 程式人生 > 實用技巧 >zookeeper叢集部署

zookeeper叢集部署

1. Environment

  • Operation System: CentOS7.4
  • Server IP: 172.50.1.211 & 172.50.1.212 & 172.50.1.218
  • JDK: java version "1.8.0_241"

2. 下載並解壓

zookeeper 官方下載地址
zookeeper 中國科學技術大學下載地址

[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2.tar.gz
[root@localhost ~]# tar -zxvf apache-zookeeper-3.6.2.tar.gz -C /usr/local

3. 修改配置檔案

3.1 zoo.cfg
[root@localhost ~]# cd /usr/local/zookeeper-3.6.2/conf && cp -ra zoo_sample.cfg zoo.cfg && cat zoo.cfg
# tickTime:基本事件單元,這個時間是作為Zookeeper伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,每隔tickTime時間就會發送一個心跳;最小 的session過期時間為2倍tickTime
tickTime=2000

# initLimit:允許follower連線並同步到Leader的初始化連線時間,以tickTime為單位。當初始化連線時間超過該值,則表示連線失敗。
initLimit=10

# syncLimit:表示Leader與Follower之間傳送訊息時,請求和應答時間長度。如果follower在設定時間內不能與leader通訊,那麼此follower將會被丟棄。
syncLimit=5

# dataDir:儲存記憶體中資料庫快照的位置,除非另有說明,否則指向資料庫更新的事務日誌 (目錄沒有,需要手動建立)
dataDir=/data/zookeeper

# 監聽埠
clientPort=2181

# server.A=B:C:D
# A:是伺服器編號;B是伺服器ip;C是Leader選舉的埠;D是zk伺服器之間的通訊埠
server.0=172.50.1.211:2888:3888
server.1=172.50.1.212:2888:3888
server.2=172.50.1.218:2888:3888
3.2 create myid
# 在"172.50.1.211"上執行
[root@localhost ~]# echo 0 > /data/zookeeper/myid
# 在"172.50.1.212"上執行
[root@localhost ~]# echo 1 > /data/zookeeper/myid
# 在"172.50.1.218"上執行
[root@localhost ~]# echo 2 > /data/zookeeper/myid

4.配置zookeeper環境變數

# 三臺機器都要執行
[root@localhost ~]# cat > /etc/profile.d/zk_env.sh << EOF
export ZK_HOME=/usr/local/apache-zookeeper-3.6.2
export PATH=$PATH:$ZK_HOME/bin
EOF

# 重新整理環境變數生效
[root@localhost ~]# source /etc/profile

5.啟動zookeeper服務

# 啟動
[root@localhost ~]# zkServer.sh start

# 停止
[root@localhost ~]# zkServer.sh stop

# 重啟
[root@localhost ~]# zkServer.sh restart

# 檢視叢集狀態
[root@localhost ~]# zkServer.sh status