上一篇《Zookeeper基礎知識點》的入門介紹次企,此文介紹一下ZK的安裝與配置以及基本使用。
搭建zookeeper集群至少需要三個節(jié)點潜圃,要求系統(tǒng)服務器之間保持一致(本事例使用192.168.56.200 201 202三臺服務器)
1.安裝與配置過程
- 解壓:tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local
- 重命名:mv zookeeper-3.4.10/ zookeeper
- 修改環(huán)境變量 vim /etc/profile
#ZOOKEEPER配置
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 刷新配置:source /etc/profile
- 到zookeeper下修改配置文件 cd /usr/local/zookeeper/conf
- 修改配置文件名稱:mv zoo_sample.cfg zoo.cfg
(修改兩處缸棵,vim zoo.cfg )- dataDir=/usr/local/zookeeper/data
- 最后面添加:
server.0=192.168.56.200:2888:3888
server.1=192.168.56.201:2888:3888
server.2=192.168.56.202:2888:3888
- 服務器標識配置
- 創(chuàng)建文件夾:mkdir /usr/local/zookeeper/data
- 創(chuàng)建文件myid并填寫內容為0:vi myid (內容為服務器標識 : 0)
- 把上面配置好的整個目錄zookeeper拷貝至另外兩臺服務器:
scp -r zookeeper/ 192.168.56.201:/usr/local
scp -r zookeeper/ 192.168.56.202:/usr/local
-
修改另外兩臺服務器以下兩個內容
- /etc/profile環(huán)境變量配置
- myid文件里的服務器標識相應的改為1和2
-
啟動zookeeper
zkServer.sh start (注意這里3臺機器都要進行啟動)
啟動后,jps可以查看到zk服務進程
查看狀態(tài)
狀態(tài):zkServer.sh status(在三個節(jié)點上檢驗zk的mode,一個leader和倆個follower)
node1狀態(tài):
node2狀態(tài):
node3狀態(tài):
2.操作zookeeper
zkCli.sh 進入zookeeper客戶端
根據提示命令進行操作:
查找:ls / ls /zookeeper
創(chuàng)建并賦值:create /lyx hadoop
獲忍菲凇:get /lyx
設值:set /lyx landy
然后再查看/lyx節(jié)點堵第,他的值就變?yōu)榱薼andy
可以看到zookeeper集群的數據一致性,在其他節(jié)點也可以查看到/lyx的信息隧出。
創(chuàng)建節(jié)點有倆種類型:短暫(ephemeral) 持久(persistent)
3.zoo.cfg配置文件詳解
- tickTime:基本事件單元踏志,以毫秒為單位。這個時間是作為 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔鸳劳,也就是每隔 tickTime時間就會發(fā)送一個心跳狰贯。
- dataDir:存儲內存中數據庫快照的位置,顧名思義就是 Zookeeper 保存數據的目錄,默認情況下涵紊,Zookeeper 將寫數據的日志文件也保存在這個目錄里傍妒。
- clientPort:這個端口就是客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監(jiān)聽這個端口摸柄,接受客戶端的訪問請求颤练。
- initLimit:這個配置項是用來配置 Zookeeper 接受客戶端初始化連接時最長能忍受多少個心跳時間間隔數,當已經超過 10 個心跳的時間(也就是 tickTime)長度后 Zookeeper 服務器還沒有收到客戶端的返回信息驱负,那么表明這個客戶端連接失敗嗦玖。總的時間長度就是 10*2000=20 秒跃脊。
- syncLimit:這個配置項標識 Leader 與 Follower 之間發(fā)送消息宇挫,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度酪术,總的時間長度就是 5*2000=10 秒
- server.A = B:C:D
- A表示這個是第幾號服務器
- B 是這個服務器的 ip 地址
- C 表示的是這個服務器與集群中的 Leader 服務器交換信息的端口
- D 表示的是萬一集群中的 Leader 服務器掛了器瘪,需要一個端口來重新進行選舉,選出一個新的 Leader
- server.A = B:C:D