Linux中zooKeeper叢集搭建
前提:三個虛擬機器(我這裡就在一個linux下弄zooKeeper,埠號不同就行),需要java 環境
第一步:
在Linux的某個目錄下建立資料夾(mkdir zooKeeper_clusters),在給目錄下面有三個zooKeeper(已經解壓好的)
zooKeeper01
zooKeeper02
zooKeeper03
第二步:
2.1進入第一個zooKeeper01,在該目錄下建立一個資料夾 zkData,再建立一個檔案(touch myid),向裡面輸出一個id--1
(echo 1 > myid)
2.2 重新命名zookeeper01/conf 這個目錄下的 zoo_sample.cfg 為 zoo.cfg
2.3 vim zookeeper01/conf/zoo.cfg 修改相關配置
dataDir=/opt/software/zooKeeper_cluster/zookeeper01/zkData(根據你自己的安裝位置而定)
增加如下配置
#######################cluster##########################
server.1=192.168.80.3:2881:3881
server.2=192.168.80.3:2882:3882
server.3=192.168.80.3:2883:3883
2.4 如果你是在三臺linux中配置的,那麼者一步你可以不用配置,因為我是在一臺linux下啟動三臺zookeeper,需要改變啟動的埠號,即 將 /opt/software/zooKeeper_cluster/zookeeper01/conf/zoo.cfg 中的 clientPort=2181 改為 clientPort=2181 (這個我不改,我這裡說是為了我等下改變後面的zookeeper02和zookeeper03說明的)
第三步:
重複第二步不過目錄是zookeeper02 和zookeeper03 ,
將 /opt/software/zooKeeper_cluster/zookeeper02/conf/zoo.cfg 中的 clientPort=2181 改為 clientPort=2182
將 /opt/software/zooKeeper_cluster/zookeeper02/conf/zoo.cfg 中的 clientPort=2181 改為 clientPort=2183
zooKeeper02,在該目錄下建立一個資料夾 zkData,再建立一個檔案(touch myid),向裡面輸出一個id--2
(echo 2 > myid)
zooKeeper03,在該目錄下建立一個資料夾 zkData,再建立一個檔案(touch myid),向裡面輸出一個id--2
(echo 3 > myid)
dataDir=/opt/software/zooKeeper_cluster/zookeeper02/zkData(根據你自己的安裝位置而定)
dataDir=/opt/software/zooKeeper_cluster/zookeeper03/zkData(根據你自己的安裝位置而定)
第四步:
分別啟動
/opt/software/zooKeeper_cluster/zookeeper01/bin/zkServer.sh start
/opt/software/zooKeeper_cluster/zookeeper02/bin/zkServer.sh start
/opt/software/zooKeeper_cluster/zookeeper03/bin/zkServer.sh start
第五步:
jps 或者ps -ef | grep zookeeper 檢視程序資訊即可!或者使用命令zkServer.sh status 檢視當前三個zookeeper中那個是leader
那個是follower
關於前面部分引數的解讀
(2)配置引數解讀
Server.A=B:C:D。
A 是一個數字,表示這個是第幾號伺服器;
B 是這個伺服器的 ip 地址;
C 是這個伺服器與叢集中的 Leader 伺服器交換資訊的埠;
D 是萬一叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的
Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。
叢集模式下配置一個檔案myid