ZooKeeper 初體驗
阿新 • • 發佈:2018-09-25
sta class 快速啟動 lin 令行 退出 code ins 命令
安裝Zookeeper
Mac OS
Mac 用戶可以使用 Homebrew 安裝和管理 Zookeeper 服務:
brew install zookeeper
配置文件地址在: /usr/local/etc/zookeeper。
啟動 zookeeper 服務:
brew services start zookeeper
進入命令行客戶端zkCli:
zkCli
默認連接localhost:2181
, 手動指定服務地址:
zkCli -server localhost:2181
Docker
可以使用官方提供的Docker鏡像快速啟動Zookeeper。
啟動服務端:
docker run --name my_zookeeper -d zookeeper
ZNode 操作
使用終端工具ZkCli連接:
docker run -it --rm --link my_zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
命令行客戶端 zkCli 可以交互式操作 Zookeeper, 其命令風格類似於 Unix 終端。
ls
查看某個路徑包含的所有節點:
[zk: localhost:2181(CONNECTED) 1] ls / [cluster, zookeeper, admin, config] [zk: localhost:2181(CONNECTED) 2] ls /zookeeper [quota]
ls2
查看某個路徑包含的所有節點,以及節點元數據:
[zk: localhost:2181(CONNECTED) 7] ls2 /zookeeper
[quota]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
create
創建節點:
[zk: localhost:2181(CONNECTED) 0] create /test 1 Created /test
/test
為創建節點的路徑,1
為Znode的數據data
。
create 命令無法遞歸創建節點,即/test節點不存在時不能直接創建/test/t1
使用-e
選項創建臨時節點:
[zk: localhost:2181(CONNECTED) 0] create -e /test/t2 t2
Created /test/t2
[zk: localhost:2181(CONNECTED) 1] get /test/t2
t2
[zk: localhost:2181(CONNECTED) 2] quit
Quitting...
[zk: localhost:2181(CONNECTED) 0] get /test/t2
Node does not exist: /test/t2
退出zkCli後重新進入,臨時節點已經消失。
get
獲取節點數據與元數據:
[zk: localhost:2181(CONNECTED) 8] get /test
1
cZxid = 0x11d28
ctime = Sat Sep 01 16:04:08 CST 2018
mZxid = 0x11d28
mtime = Sat Sep 01 16:04:08 CST 2018
pZxid = 0x11d28
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
set
更改節點數據:
[zk: localhost:2181(CONNECTED) 9] set /test 2
cZxid = 0x11d28
ctime = Sat Sep 01 16:04:08 CST 2018
mZxid = 0x11d2a
mtime = Sat Sep 01 16:25:46 CST 2018
pZxid = 0x11d28
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
可以註意到版本號發生了變化。
delete
刪除節點:
[zk: localhost:2181(CONNECTED) 2] delete /test
只能刪除沒有子節點的Znode,若要將子節點一同刪除需使用rmr命令。
ZooKeeper 初體驗