天天看點

zookeeper 高可用-主備叢集安裝部署

  1. 修改主機host
  2. 上傳并解壓安裝包,重命名檔案夾
  3. 在節點目錄下建立 資料和日志檔案夾
  4. 修改zoo.cfg配置檔案
  5. zoo.cfg配置參數說明
  6. 在資料檔案夾下建立myid檔案
  7. 防火牆設定
  8. 配置開機啟動
以三個節點為例
伺服器1:192.168.13.81  端口:2181、2881、3881
伺服器2:192.168.13.82  端口:2182、2882、3882
伺服器3:192.168.13.83  端口:2183、2883、3883
           
1 修改主機host
三個節點都修改
vi /etc/hosts
192.168.13.81   zk-01
192.168.13.82   zk-02
192.168.13.83   zk-03
           
2 上傳并解壓安裝包,重命名檔案夾
三個節點分别都操作
tar -zxvf zookeeper-.tar.gz
mv zookeeper- node-
mv zookeeper- node-
mv zookeeper- node-
           
3 在節點目錄下建立 資料和日志檔案夾
cd /home/duhj/zookeeper/node-
mkdir data
mkdir logs
cd /home/duhj/zookeeper/node-
mkdir data
mkdir logs
cd /home/duhj/zookeeper/node-
mkdir data
mkdir logs
           
4.修改zoo.cfg配置檔案
節點01:
vi /home/duhj/zookeeper/node-01/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/duhj/zookeeper/node-01/data
dataLogDir=/home/duhj/zookeeper/node-01/logs
clientPort=2181
server.1=zk-01:2881:3881
server.2=zk-02:2882:3882
server.3=zk-03:2883:3883

節點02:
vi /home/duhj/zookeeper/node-02/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/duhj/zookeeper/node-02/data
dataLogDir=/home/duhj/zookeeper/node-02/logs
clientPort=2182
server.1=zk-01:2881:3881
server.2=zk-02:2882:3882
server.3=zk-03:2883:3883

節點03:
vi /home/duhj/zookeeper/node-03/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/duhj/zookeeper/node-03/data
dataLogDir=/home/duhj/zookeeper/node-03/logs
clientPort=2182
server.1=zk-01:2881:3881
server.2=zk-02:2882:3882
server.3=zk-03:2883:3883
           
5.zoo.cfg配置參數說明
tickTime=2000
tickTime這個時間是作為Zookeeper伺服器之間或用戶端與伺服器之間維持心跳的時間間隔,也就是每個tickTime時間就會發送一個心跳。

initLimit=10
initLimit這個配置項是用來配置Zookeeper接受用戶端(這裡所說的用戶端不是使用者連接配接Zookeeper伺服器的用戶端,而是Zookeeper伺服器叢集中連接配接到Leader的Follower 伺服器)初始化連接配接時最長能忍受多少個心跳時間間隔數。當已經超過10個心跳的時間(也就是tickTime)長度後 Zookeeper 伺服器還沒有收到用戶端的傳回資訊,那麼表明這個用戶端連接配接失敗。總的時間長度就是 10*2000=20 秒。

syncLimit=5
syncLimit這個配置項辨別Leader與Follower之間發送消息,請求和應答時間長度,最長不能超過多少個tickTime的時間長度,總的時間長度就是5*2000=10秒。

dataDir=/home/wusc/zookeeper/node-01/data
dataDir顧名思義就是Zookeeper儲存資料的目錄,預設情況下Zookeeper将寫資料的日志檔案也儲存在這個目錄裡。

clientPort=2181
clientPort這個端口就是用戶端(應用程式)連接配接Zookeeper伺服器的端口,Zookeeper會監聽這個端口接受用戶端的通路請求。


server.A=B:C:D
server.1=zk-01:2881:3881
server.2=zk-02:2882:3882
server.3=zk-03:2883:3883
A是一個數字,表示這個是第幾号伺服器;
B是這個伺服器的IP位址(或者是與IP位址做了映射的主機名);
C第一個端口用來叢集成員的資訊交換,表示這個伺服器與叢集中的Leader伺服器交換資訊的端口;
D是在leader挂掉時專門用來進行選舉leader所用的端口。
注意:如果是僞叢集的配置方式,不同的 Zookeeper 執行個體通信端口号不能一樣,是以要給它們配置設定不同的端口号。
           
6 在資料檔案夾下建立myid檔案
節點:
vi /home/duhj/zookeeper/node-/data/myid

節點:
vi /home/duhj/zookeeper/node-/data/myid

節點:
vi /home/duhj/zookeeper/node-/data/myid

           
7 防火牆設定
root使用者
檢查并開啟防火牆
chkconfig iptables on
service iptables start

儲存防火牆規則(新伺服器,一開始沒有規則檔案)
service iptables save

修改規則
vi /etc/sysconfig/iptables

節點:
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
節點:
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
節點:
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT

重新開機防火牆
service iptables restart

檢視防火牆狀态
service iptables status
           
8 配置開機啟動
節點:
su - duhj -c '/home/duhj/zookeeper/node-01/bin/zkServer.sh start'
節點:
su - duhj -c '/home/duhj/zookeeper/node-02/bin/zkServer.sh start'
節點:
su - duhj -c '/home/duhj/zookeeper/node-03/bin/zkServer.sh start'
           

繼續閱讀