1. 程式人生 > >ZooKeeper 初體驗

ZooKeeper 初體驗

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 初體驗