一、zookeeper集羣安裝
- 修改zoo.cfg,現在有四臺服務器136/129/135/137
server.1=192.168.11.136:2888:3181
server.2=192.168.11.129:2888:3181
server.3=192.168.11.135:2888:3181
server.4=192.168.11.137:2888:3181:observer
2888表示follower節點與leader節點交換信息的端口號
3181如果leader節點掛掉了,需要一個端口進行重新選舉leader
2. zoo.cfg 中有一個dataDir=/tmp/zookeeper,在裏面添加一個myid文件,裏面是zoo.cfg中配置的server.id的id值,
vim myid
每臺服務器,填寫她自己的serve.id 136爲1,129爲2,135爲3 137爲4
- 如果需要添加observer節點,在zoo.cfg文件中添加:peerType=observer
- 關閉防火牆
systemtcl stop firewalld
- 啓動服務
sh zkServer.sh start
sh zkServer.sh status
- 啓動後節點分佈情況
二、zookeeper配置文件分析
tickTime=2000 #zookeepr最小時間單位(ms)
initLimit=10 #follower節點啓動後與leader節點完成數據同步的時間(10*2000=20s)
syncLimit=5 #leader節點和follower進行心跳檢測的最大延時時間
dataDir=/tmp/zookeeper #表示zookeerper服務器存儲快照文件的日誌
dataLogDir= #表示配置zookeeper事務日誌的存儲路徑,默認配置在dataDir目錄下,
#一般與快照掛載載不同的服務器上
clientPort=2181 #表示客戶端和服務端建立連接的端口號
三、zookerper的一些概念
數據模型
- zookeeper的數據模型和文件系統類似,每一個節點稱爲:znode,是zookeeper中的最小數據單元,每一個znode上都可以保持數據和掛在子節點,從而構成一個層次化的屬性結構。
- 持久化節點:節點創建後一直存在zookeeper服務器上,知道主動刪除
- 持久化有序節點:每個節點都會爲它的子節點維護一個順序
- 臨時節點:臨時節點的生命週期和客戶端的會話保持一致,當客戶端會話失效,該節點自動清理
- 臨時有序節點:在臨時節點上多了一個順序性特性
會話
命令
sh zkCli.sh
create [-s] [-e] path data acl
-s 表示節點是否有序
-e 表示是否爲臨時節點
默認情況下,是持久化節點
ls /
查看
watch
b