Mac安裝配置zookeeper

  • 2019 年 10 月 8 日
  • 筆記

Zookeeper 的安裝

先到apache官網進行下載

首先從官網下載ZooKeeper壓縮包,然後解壓下載得到的ZooKeeper壓縮包,發現有「bin,conf,lib」等目錄。「bin目錄」中存放有運行腳本;「conf目錄」中存放有配置文件;「lib目錄」中存放有運行所需要第三方庫。

Zookeeper 的配置

一、單機模式

編輯配置文件

在「conf」目錄下,將「zoo_sample.cfg」的文件重命名為"zoo.cfg"

然後編輯"zoo.cfg",其中內容為下

參數說明

#tickTime: zookeeper中使用的基本時間單位, 毫秒值.  #dataDir: 數據目錄. 可以是任意目錄.  #dataLogDir: log目錄, 同樣可以是任意目錄. 如果沒有設置該參數, 將使用和#dataDir相同的設置.  #clientPort: 監聽client連接的埠號.

運行ZooKeeper Server

執行./bin/zkServer.sh start命令,運行ZooKeeper Server進程,得到如圖所示結果,表示後台運行ZooKeeper Server進程成功。

停止:./bin/zkServer.sh stop 也可以執行bin/zkServer.sh start-foreground命令,非後台運行ZooKeeper Server進程

二、集群模式

集群模式有兩種形式: 1)使用多台機器,在每台機器上運行一個ZooKeeper Server進程; 2)使用一台機器,在該台機器上運行多個ZooKeeper Server進程。 在生產環境中,一般使用第一種形式,在練習環境中,一般使用第二種形式。

參數配置

  1. data目錄 用於存放進程運行數據。
  2. data目錄下的myid文件 用於存儲一個數值,用來作為該ZooKeeper Server進程的標識。
  3. 監聽Client端請求的埠號
  4. 監聽同ZooKeeper集群內其他Server進程通訊請求的埠號
  5. 監聽ZooKeeper集群內「leader」選舉請求的埠號 該埠號用來監聽ZooKeeper集群內「leader」選舉的請求。注意這個是ZooKeeper集群內「leader」的選舉,跟分散式應用程式無關。

參數配置注意事項: 1)同一個ZooKeeper集群內,不同ZooKeeper Server進程的標識需要不一樣,即myid文件內的值需要不一樣 2)採用上述第2種形式構建ZooKeeper集群,需要注意「目錄,埠號」等資源的不可共享性,如果共享會導致ZooKeeper Server進程不能正常運行,比如「data目錄,幾個監聽埠號」都不能被共享

myid

Data目錄

Client

Server

Leader

配置文件

1

/z1/data

2181

2222

2223

z1.cfg

2

/z2/data

2182

3333

3334

z2.cfg

3

/z3/data

2183

4444

4445

z3.cfg

配置如下:

# zx.cfg      tickTime=2000      initLimit=10      syncLimit=2      dataDir=/usr/myenv/zookeeper-3.4.8/zx/data      clientPort=218x      # server.x中的「x」表示ZooKeeper Server進程的標識      server.1=127.0.0.1:2222:2225      server.2=127.0.0.1:3333:3335      server.3=127.0.0.1:4444:4445

註:

initLimit: zookeeper集群中的包含多台server, 其中一台為leader, 集群中其餘的server為follower. initLimit參數配置初始化連接時, follower和leader之間的最長心跳時間. 此時該參數設置為5, 說明時間限制為5倍tickTime, 即5*2000=10000ms=10s.

syncLimit: 該參數配置leader和follower之間發送消息, 請求和應答的最大時間長度. 此時該參數設置為2, 說明時間限制為2倍tickTime, 即4000ms.

運行ZooKeeper Server

bin/zkServer.sh start deploy/z1/z1.cfg,    bin/zkServer.sh start deploy/z2/z2.cfg    bin/zkServer.sh start deploy/z3/z3.cfg

運行上述配置的3個ZooKeeper Server進程。

運行ZooKeeper命令行客戶端

執行命令

bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

建立ZooKeeper Client端到ZooKeeper集群的連接會話。