Zookeeper 安裝配置 僞集羣搭建

本文總結一下在Linux上Zookeeper的安裝和配置

安裝

在zookeeper官網上推薦的清華鏡像地址下載對應版本的zk安裝包,以最新版本3.5.6舉例,這裏記住要下載帶-bin的包

如果下載不帶-bin的包,啓動zk時可能會報錯Starting zookeeper … FAILED TO START
查看日誌會看到如下錯誤

Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
配置
  • 解壓,進入conf目錄拷貝配置文件
cp -a zoo_sample.cfg zoo.cfg

默認端口2181,可自行修改,如有需要可以修改dataDir路徑

  • bin/zkServer.sh start 啓動zk服務
  • bin/zkServer.sh status 查看zk狀態
  • bin/zkServer.sh stop 停止zk服務
  • bin/zkCli.sh 進入zk客戶端操作界面
僞集羣搭建

僞集羣指的是在一臺物理機上搭建zk集羣

  • linux上解壓三份zookeeper到同一目錄下
  • 修改各自的配置文件zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper1
clientPort=2181
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

tickTime 一次心跳的時間,單位是毫秒
initLimit 初始follower和leader連接並同步數據的超時時間,如果在該時間內沒有半數以上的follower連接並同步成功的話,leader會放棄,並重新選舉
syncLimit 一個follower和leader同步的時間,該時間內沒有完成同步,會被leader丟棄,連接到該follower的客戶端會自動連接到其他節點
分別指定各自的dataDir和clientPort,都加入如下集羣配置
initLimit和syncLimit的數字表示有幾個心跳時間 n * tickTime

server.myid=hostname:port1:port2
myid代表集羣機器的序號
hostname代表機器域名
port1端口代表集羣間數據通信的端口
port2端口代表集羣間進行leader選舉的端口
因爲是僞集羣,所以各自的兩個通信端口要不一樣

**注意:**修改各自的客戶端端口,可以是2181、2182、2183
同時修改各自的dataDir路徑

  • 增加myid文件
    在三份zk的數據目錄(dataDir)下,創建名爲myid的文件,內容爲各自的id(分別是1、2、3)
  • 分別啓動三臺zookeeper服務
  • 查看狀態,可以看到一臺leader和兩臺follower,如果將leader服務關閉,集羣將會重新選舉leader
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章