Zookeeper 安裝和配置

xz43發表於2016-05-23
Zookeeper的安裝和配置十分簡單,既可以配置成單機模式,也可以配置成叢集模式。

單機模式

下載zookeeper的安裝包或wget方式下載,然後解壓並複製到合適目錄,進入zookeeper目錄下的conf子目錄:

# wget 
# tar zxvf zookeeper-3.3.6.tar.gz
# mv zookeeper-3.3.6 zookeeper1
# cd /opt/zookeeper1
# mkdir -p data
# cp conf/zoo_sample.cfg conf/zoo.cfg

修改其配置檔案:
# vi conf/zoo.cfg

tickTime=2000 #心跳時間
initLimit=5
syncLimit=2
dataDir=/opt/zookeeper1/data #資料儲存目錄 clientPort=2181 #客戶端連線埠
 

引數說明:

  • tickTime: zookeeper中使用的基本時間單位,毫秒值。
  • initLimit:  zookeeper叢集中的包含多臺server, 其中一臺為leader, 叢集中其餘的server為follower。initLimit引數配置初始化連線時, follower和leader之間的最長心跳時間。 此時該引數設定為5, 說明時間限制為5倍tickTime, 即5*2000=10000ms=10s。
  • syncLimit: 該引數配置leader和follower之間傳送訊息, 請求和應答的最大時間長度。 此時該引數設定為2, 說明時間限制為2倍tickTime, 即4000ms。
  • dataDir: 資料目錄,可以是任意目錄。
  • dataLogDir: log目錄,同樣可以是任意目錄。如果沒有設定該引數,將使用和dataDir相同的設定。
  • clientPort: 監聽client連線的埠號。

至此, zookeeper的單機模式已經配置好。啟動server只需執行指令碼

bin/zkServer.sh start

Server啟動之後,就可以啟動client連線server了, 執行指令碼:

bin/zkCli.sh -server localhost:2181

可以為zookeeper增加其記憶體,只需要編輯bin目錄下的zkEnv.sh,在檔案的底部增加如下設定:

export JVMFLAGS="-Xms1024m -Xmx2048m $JVMFLAGS"

偽叢集模式

所謂偽叢集,是指在單臺機器中啟動多個zookeeper程式, 並組成一個叢集。這裡以配置3個zookeeper程式為例。

將zookeeper的目錄複製2份
# cp -R zookeeper1 zookeeper2
# cp -R zookeeper1 zookeeper3

修改配置檔案裡面的data目錄(引數dataDir)/clientPort,並增加如下配置:

# vi zookeeper1/conf/zoo.cfg
dataDir=/opt/zookeeper1/data
clientPort=2181
###
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
server.3=127.0.0.1:8883:7773
引數說明:
#server.A=B:C:D    其中 A 是一個數字,表示這個是第幾號伺服器;B 是這個伺服器的 ip 地址;C 表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的埠;D 表示的是萬一叢集中的 #Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的 Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 #Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。

# vi zookeeper2/conf/zoo.cfg
dataDir=/opt/zookeeper2/data
clientPort=2182
###
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
server.3=127.0.0.1:8883:7773
# vi zookeeper3/conf/zoo.cfg
dataDir=/opt/zookeeper3/data
clientPort=2183
###
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
server.3=127.0.0.1:8883:7773

並在上面的dataDir指定目錄下增加myid檔案, 寫入一個數字, 該數字表示這是第幾號server。 該數字必須和zoo.cfg檔案中的server.X中的X一一對應,即/opt/zookeeper1/data/myid檔案中寫入1, /opt/zookeeper2/data/myid檔案中寫入2, /opt/zookeeper3/data/myid檔案中寫入3。

叢集模式

叢集模式的配置和偽叢集基本一致。
由於叢集模式下, 各server部署在不同的機器上,因此各server的conf/zoo.cfg檔案可以完全一樣,不必擔心埠衝突什麼的。
需要注意的是, 各server的dataDir目錄下的myid檔案中的數字必須不同。

啟動

./bin/zkServer.sh start
 

 停止

./bin/zkServer.sh stop

:命令列參考 (See: )


驗證啟動狀態

telnet 127.0.0.1 2181


用法

dubbo.registry.address=zookeeper://192.168.0.138:2181?backup=192.168.0.139:2181

或者


測試zk服務

執行$ zkCli.sh -server 192.168.0.138:2181,檢查指定伺服器是否成功啟動。 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-2105694/,如需轉載,請註明出處,否則將追究法律責任。

相關文章