ZK安裝、ZK配置、ZK集群部署

  • 2019 年 10 月 3 日
  • 筆記

今天心血來潮,想搞一下zookeeper集群。具體步驟記錄下吧~嘻嘻?!

第一步、環境需求 jdk安裝部署好 

第二步、zookeeper下載.tar.gz結尾的包, 使用“tar -zxvf  文件名”方式進行解壓縮

https://www.apache.org/dist/zookeeper/zookeeper-3.4.14/

第三步、進入目錄的conf目錄下複製zoo_sample.cfg文件,為zoo.cfg文件(執行命令: cp zoo_sample.cfg  zoo.cfg)。zoo.sample.cfg文件是官方所給的zk配置文件的demo,zk啟動默認載入的是zoo.cfg文件。

 重點關注屬性 clientPort屬性zk埠、dataDir數據文件夾目錄,dataLogDir日誌文件夾目錄。不建議這兩個目錄在zk根目錄下,如果數據量大會造成zk的嚴重的性能問題。

 集群環境中需要添加 server.1=127.0.0.1:2888:3888 、server2=**。單機只需要server.1即可。1是指在dataDir文件夾下創建的myid文件(在dataDir文件中執行:echo “1” >myid)

 以下為zk的配置詳情(參數含義)描述

#間隔都是使用tickTime的倍數來表示的,例如initLimit=10就是tickTime的十倍等於2W毫秒  tickTime=2000    # The number of ticks that can pass between, sending a request and getting an acknowledgement  # 心跳最大延遲時間,如果leader在規定的時間內無法獲取到follow的心跳檢測響應,則認為節點已脫離  syncLimit=5    # the directory where the snapshot is stored. do not use /tmp for storage, /tmp here is just. example sakes.  # 用於存放記憶體資料庫快照的文件夾,同時用於集群的myid文件也存在這個文件夾里  dataDir=/root/zookeeper-3.4.14/zkData    # the port at which the clients will connect,ZK埠  clientPort=2181    # the maximum number of client connections. increase this if you need to handle more clients  # 允許連接的客戶端數目,0-不限制,通過 IP 來區分不同的客戶端  maxClientCnxns=60    #將管理機器把事務日誌寫入到“ dataLogDir ”所指定的目錄,而不是“ dataDir ”所指定的目錄。避免日誌和快照之間的競爭  #dataLogDir=/root/zookeeper-3.4.14/log/data_log    # The number of snapshots to retain in dataDir  #用於配置zookeeper在自動清理的時候需要保留的快照數據文件數量和對應的事務日誌文件,最小值時三,如果比3小,會自動調整為3  #autopurge.snapRetainCount=3    # Purge task interval in hours. Set to "0" to disable auto purge feature  #配套snapRetainCount使用,用於配置zk進行歷史文件自動清理的頻率,如果參數配置為0或者小於零,就表示不開啟定時清理功能,默認不開啟  #autopurge.purgeInterval=1      ##集群配置  # The number of ticks that the initial, synchronization phase can take  # follow伺服器在啟動的過程中會與leader伺服器建立鏈接並完成對數據的同步,leader伺服器允許follow在initLimit時間內完成,默認時10.集群量增大時  #同步時間變長,有必要適當的調大這個參數, 當超過設置倍數的 tickTime 時間,則連接失敗  initLimit=10    #server.A=B:C:D:其中 A 數字,表示是第幾號伺服器. dataDir目錄下必有一個myid文件,裡面只存儲A的值,ZK啟動時讀取此文件,與下面列表比較判斷是哪個server  # B 是伺服器 ip ;C表示與 Leader 伺服器交換資訊的埠;D 表示的是進行選舉時的通訊埠。  server.1=127.0.0.1:2888:3888  server.2=127.0.0.1:2889:3889  server.3=127.0.0.1:2890:3890    # 配置成observer模式  #peerType=observer  # 注意觀察者角色的末尾,需要拼接上observer  #server.4=10.2.143.38:2886:3886:observer

 第四步、創建dataDir文件下的主機標識文件myid,具體方法在第三步有描述。

 第五步、在zk的bin目錄下執行 ./zkServer.sh start 啟動zk,默認走的是zoo.cfg配置文件,也可以在啟動命令上指定啟動配置文件./zkServer.sh start  zoo.cfg

 

如果啟動異常看看踩過的坑,防止重複踩。鏈接ZK安裝、ZK配置、ZK集群部署踩過的大坑

 

驗證是否啟動成功

0、在zk的bin目錄下執行./zkServer.sh status  查看啟動狀態Mode 有兩個值 leader 和follower

 

1、執行java 的jps命令查詢當前的java進程:QuorumPeerMain  是zk的默認啟動類,我的啟動了三個zk

2、使用 zk的bin目錄下的./zkClient.sh 鏈接登錄zk

 

 

 

 

zk集群的好文章