本文旨在簡單的在linux上配置zookeeper,window上應該是同理
1、下載
地址:http://zookeeper.apache.org/releases.html
本人使用的版本是:zookeeper-3.4.6.tar.gz
2、準備服務器
本人使用虛擬機:
IP地址分別是:192.168.122.130,192.168.122.131,192.168.122.132
3、安裝
解壓1步驟中的壓縮包到 /usr/local/zookeeper
tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /usr/local/zookeeper
配置環境變量:
vi ~/.bash_profile
增加
ZOOKEEPER_HOME=/usr/local/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin
修改配置文件:
cd /usr/local/zookeeper
mkdir zkdata zkdatalog ##創建數據和日誌目錄
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
增加下面幾項:
dataDir=/usr/local/zookeeper/zkdata
dataLogDir=/usr/local/zookeeper/zkdatalog
server.0=192.168.122.130:2888:3888
server.1=192.168.122.131:2888:3888
server.2=192.168.122.132:2888:3888
如下圖:
在對應的機器/usr/local/zookeeper/zkdata 目錄下,增加myid文件
本人的配置是:
192.168.122.130 機器上的myid文件內容是 0
192.168.122.130 機器上的myid文件內容是 1
192.168.122.130 機器上的myid文件內容是 2
對照zoo.cfg裏面的配置編寫myid
一臺機器配置完後,其他機器同步也要配置,可以使用scp直接傳過去
各服務器配置完成後:每臺機器通過 zkServer.sh start 啓動zk服務
通過zkServer.sh status查看節點狀態
192.168.122.130
[root@localhost zookeeper]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@localhost zookeeper]#
192.168.122.131
[root@localhost soft]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@localhost soft]#
192.168.122.132
[root@localhost soft]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@localhost soft]#
開始測試:
任意機器上輸入 zkCli.sh
[root@localhost zkdata]# zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper, test]
[zk: localhost:2181(CONNECTED) 1] create /test2 1
Created /test2
[zk: localhost:2181(CONNECTED) 2] get /test2
1
cZxid = 0x100000010
ctime = Mon Oct 22 16:04:59 CST 2018
mZxid = 0x100000010
mtime = Mon Oct 22 16:04:59 CST 2018
pZxid = 0x100000010
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
[zk: localhost:2181(CONNECTED) 3]
可以去其他機器上看下創建的節點是否存在;
zk的命令:
ls / 查找根目錄
create /test abc 創建節點並賦值
get /test 獲取指定節點的值
set /test cb 設置已存在節點的值
rmr /test 遞歸刪除節點
delete /test/test01 刪除不存在子節點的節點