zookeeper部署和運行

環境準備:

  1. 操做系統,此處使用windows系統
  2. Java運行環境,JDK1.6以上
  3. 下載對應操做系統zookeeper安裝包zookeeper-x.x.x.tar.gz,下載地址:http://zookeeper.apache.org/releases.html,解壓,下文使用%ZK_HOME%表示該zookeeper的安裝目錄

部署:

  • 單機模式
  1. 配置zoo.cfg
    將%ZK_HOME%/conf目錄下的zoo_sample.cfg文件拷貝一份命名爲zoo.cfg,配置成:
tickTime=2000
initLimit=10
syncLimit=5
#數據目錄
dataDir=D:/zookeeper/zookeeper-3.4.9-1/tmp/zookeeper
#客戶端端口
clientPort=2181
server.1=127.0.0.1:2888:3888
  1. 啓動服務器
sh %ZK_HOME%/bin/zkServer.sh start
  1. 驗證服務器
    運行%ZK_HOME%/bin/zkCli.cmd,linux系統下運行%ZK_HOME%/bin/zkCli.sh,也能夠用telnet 127.0.0.1 2181驗證
  • 僞集權模式
  1. 配置文件zoo.cfg
    將%ZK_HOME%/conf目錄下的zoo_sample.cfg文件拷貝一份命名爲zoo.cfg,按以下做簡單配置:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/zookeeper/zookeeper-3.4.9-1/tmp/zookeeper
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
  1. 建立myid文件
    在每一個ZooKeeper的dataDir目錄下建立myid文件,內容爲每臺機器的ServerID
1
  1. 按照相同的步驟,爲其餘機器都配置好zoo.cfg和myid,其中myid的文件內容配成對應的serverID,zoo.cfg中的clientPort換成別的未被佔用的端口
  2. 啓動服務器
    運行%ZK_HOME%/bin/zkServer.cmd,linux系統下運行%ZK_HOME%/bin/zkServer.sh
  3. 驗證服務器
    使用telnet 127.0.0.1 2181驗證
  • 集權模式

集權模式同上面僞集權模式相同,由於zookeeper部署在不一樣的機器上,IP地址不一樣,因此將zoo.cfg中配置的服務器的ip地址修改爲對應的ip便可html

zoo.cfg詳解

  • tickTime:這個時間是做爲 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。
  • dataDir:顧名思義就是 Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。
  • clientPort:這個端口就是客戶端鏈接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
  • initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這裏所說的客戶端不是用戶鏈接 Zookeeper 服務器的客戶端,而是 Zookeeper 服務器集羣中鏈接到 Leader 的 Follower 服務器)初始化鏈接時最長能忍受多少個心跳時間間隔數。當已經超過 5個心跳的時間(也就是 tickTime)長度後 Zookeeper 服務器尚未收到客戶端的返回信息,那麼代表這個客戶端鏈接失敗。總的時間長度就是 5*2000=10 秒
  • syncLimit:這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒
  • server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口;D 表示的是萬一集羣中的 Leader 服務器掛了,須要一個端口來從新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通訊的端口。若是是僞集羣的配置方式,因爲 B 都是同樣,因此不一樣的 Zookeeper 實例通訊端口號不能同樣,因此要給它們分配不一樣的端口號。

bash腳本

腳本 說明
zkCleanup 清理zk歷史數據,包括事務日誌文件和快照數據文件
zkCli zk的一個簡易客戶端
zkEnv 設置zk的環境變量
zkServer zk服務器啓動、中止和重啓腳本
#鏈接指定的zk服務器
sh zhCli.sh -server ip:port
相關文章
相關標籤/搜索