1. 程式人生 > >Linux中zooKeeper叢集搭建

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