Zookeeper基於JDK開發出來的
運行環境至少需要JRE
快速安裝JDK:
yum install -y java-1.8.0-openjdk-devel.x86_64
# ZK鏡像倉庫
https://downloads.apache.org/zookeeper/
# 下載 *.bin.tar.gz包
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
# 解壓包
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
# 將解壓出來的目錄復制到 /usr/local/下 (可選)
cp -r /root/apache-zookeeper-3.7.0-bin /usr/local/
# 將ZK備份的配置文件復制一份重命名為zoo.cfg
cp /usr/local/apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg /usr/local/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
# 啟動ZK,停止ZK
/usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh stop
# 查看ZK狀態
/usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
# 啟動ZK失敗,查看日志信息
cat /usr/local/apache-zookeeper-3.7.0-bin/logs/zookeeper-root-server-localhost.localdomain.out
一般情況是8080端口占用,殺死該占用進程就好了
netstat -lntp | grep 8080 kill -9 8080端口的進程號
服務器基本操作命令:
# 啟動ZK,停止ZK 重啟ZK /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh stop /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh restart # 查看ZK狀態 /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
順便設置開機自啟動:
試了一下,並不會開啟。。。
vim /etc/rc.local /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start
登陸 與 退出 ZK
# 登陸ZK /usr/local/apache-zookeeper-3.7.0-bin/bin/zkCli.sh -server localhost:2181 # 退出ZK quit
展示根節點信息:
[zk: localhost:2181(CONNECTED) 1] ls / [zookeeper] [zk: localhost:2181(CONNECTED) 2]
ZK節點信息:
[zk: localhost:2181(CONNECTED) 2] ls /zookeeper [config, quota] [zk: localhost:2181(CONNECTED) 3]
創建節點(可連子節點)和數據
[zk: localhost:2181(CONNECTED) 3] create /sample aaa Created /sample [zk: localhost:2181(CONNECTED) 4] create /sample2 Created /sample2 [zk: localhost:2181(CONNECTED) 5]
# 創建臨時節點
create -e /tempNode
# 創建持久化順序節點
create -s /persistSortNode
# 創建臨時順序節點
create -s /tempSortNode
對已經存在的節點設置數據
[zk: localhost:2181(CONNECTED) 5] set /sample bbb [zk: localhost:2181(CONNECTED) 6]
獲取節點上的數據,無數據則返回NULL
[zk: localhost:2181(CONNECTED) 7] get /sample bbb
刪除節點(該節點包含后代節點則不能刪除)
[zk: localhost:2181(CONNECTED) 20] delete /sample [zk: localhost:2181(CONNECTED) 21]
刪除節點(包括后代節點一並刪除)
[zk: localhost:2181(CONNECTED) 20] deleteall /sample [zk: localhost:2181(CONNECTED) 21]
創建順序的持久化節點:
會自動在后面補上連號
[zk: localhost:2181(CONNECTED) 9] create -s /sequenNode Created /sequenNode0000000002 [zk: localhost:2181(CONNECTED) 10] create -s /sequenNode Created /sequenNode0000000003 [zk: localhost:2181(CONNECTED) 11] create -s /sequenNode Created /sequenNode0000000004 [zk: localhost:2181(CONNECTED) 12] create -s /sequenNode Created /sequenNode0000000005 [zk: localhost:2181(CONNECTED) 13] create -s /sequenNode Created /sequenNode0000000006 [zk: localhost:2181(CONNECTED) 14] create -s /sequenNode Created /sequenNode0000000007 [zk: localhost:2181(CONNECTED) 15] create -s /sequenNode Created /sequenNode0000000008 [zk: localhost:2181(CONNECTED) 16] create -s /sequenNode Created /sequenNode0000000009
展示節點的詳細信息:
[zk: localhost:2181(CONNECTED) 22] ls -s / [sample2, sequenNode0000000002, sequenNode0000000003, sequenNode0000000004, sequenNode0000000005, sequenNode0000000006, sequenNode0000000007, sequenNode0000000008, sequenNode0000000009, zookeeper] cZxid = 0x0 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = 0x0 mtime = Thu Jan 01 08:00:00 CST 1970 pZxid = 0xe cversion = 10 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 0 numChildren = 10 [zk: localhost:2181(CONNECTED) 23]