zookeeper單機部署集羣

因爲手頭沒有多餘的機器,使用單機部署zookeeper集羣數據庫

一、下載zookeeper,我使用的是zookeeper-3.4.6.tar.gz。  vim

二、解壓bash

tar -zxvf zookeeper-3.4.6.tar.gz

三、copy成3份 服務器

cp zookeeper-3.4.6 zookeeper-3.4.6_1
cp zookeeper-3.4.6 zookeeper-3.4.6_2
cp zookeeper-3.4.6 zookeeper-3.4.6_3

四、分別修改配置文件日誌

cd zookeeper-3.4.6_1/conf
vim zoo.cfg
tickTime=2000
dataDir=/opt/zookeeper-3.4.6_1/data
dataLogDir=/opt/zookeeper-3.4.6_1/log
clientPort=2181
initLimit=10
syncLimit=5
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

參數說明:server

  • tickTime :基本事件單元,以毫秒爲單位。這個時間是做爲 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。
  • dataDir :存儲內存中數據庫快照的位置,顧名思義就是 Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。
  • clientPort :這個端口就是客戶端鏈接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
  • initLimit:這個配置項是用來配置 Zookeeper 接受客戶端初始化鏈接時最長能忍受多少個心跳時間間隔數,當已經超過 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

五、創建myid文件blog

vim opt/zookeeper-3.4.6_1/data/myid
1

六、同時設置另外兩個zookeeper實例事件

七、啓動ip

sh /opt/zookeeper-3.4.6_1/bin/zkServer.sh start

八、啓動另外兩個實例。內存

注:觀察日誌能夠看到一些錯誤日誌,不用理會,所有啓動的時候就OK了

九、查看節點狀態

 sh zkServer.sh status

JMX enabled by default
Using config: /opt/zookeeper-3.4.6_1/bin/../conf/zoo.cfg
Mode: follower
相關文章
相關標籤/搜索