一、zookeeper客戶端簡介
??ZooKeeper提供了一個非常簡單的命令行客戶端zkCli,它在ZooKeeper安裝目錄的bin目錄下。輸入./zkCli.sh命令默認連接本地127.0.0.1:2181節(jié)點,如果我們需要連接遠程節(jié)點可以使用./zkCli.sh -server ip:2181方式進行連接。連接過程中會輸出一大堆信息。當連接成功后,將進入ZooKeeper的交互式模式。博文實驗環(huán)境:
- 操作系統(tǒng):centos7.6
- zookeeper版本:3.6.3
二、zookeeper常用命令示例
0、連接zookeeper server
[wuhs@s143 bin]$ ./zkCli.sh -server 192.168.0.142:2181
Connecting to 192.168.0.142:2181
2022-03-02 22:26:26,705 [myid:] - INFO [main:Environment@98] - Client environment:zookeeper.version=
…
mplete on server s142/192.168.0.142:2181, session id = 0x100002542a90003, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
1、獲取命令幫助
??早先版本是通過help命令獲取命令幫助,新版本會提示找不到help命令,但是輸出結(jié)果還是會顯示zookeeper客戶端下支持的命令。
2、查看軟件版本
[zk: 192.168.0.142:2181(CONNECTED) 1] version
ZooKeeper CLI version: 3.6.3–6401e4ad2087061bc6b9f80dec2d69f2e3c8660a, built on 04/08/2021 16:35 GMT
3、連接一個遠程節(jié)點
[zk: 192.168.0.142:2181(CONNECTED) 2] connect 192.168.0.143:2181
4、關(guān)閉連接
[zk: 192.168.0.143:2181(CONNECTED) 3] close
WATCHER::
WatchedEvent state:Closed type:None path:null
2022-03-03 01:29:57,127 [myid:] - INFO [main:ZooKeeper@1619] - Session: 0x20000253ae20003 closed
2022-03-03 01:29:57,127 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@578] - EventThread shut down for session: 0x20000253ae20003
5、顯示仲裁成員的配置
[zk: 192.168.0.143:2181(CONNECTED) 8] config
server.1=192.168.0.142:2888:3888:participant
server.2=192.168.0.143:2888:3888:participant
server.3=192.168.0.144:2888:3888:participant
version=0
6、創(chuàng)建一個znode
??命令語法:create [-s] [-e] [-c] [-t ttl] path [data] [acl]
- -s:創(chuàng)建的是帶序列號的節(jié)點,序列號用0填充節(jié)點路徑。
- -e:創(chuàng)建的是臨時節(jié)點。
- -c:創(chuàng)建的是容器節(jié)點
- path:znode的路徑,ZooKeeper中沒有相對路徑,所有路徑都必須以’/'開頭。
- data:znode攜帶的數(shù)據(jù)。
- acl:這個節(jié)點的ACL。
#創(chuàng)建一個永久節(jié)點
[zk: 192.168.0.143:2181(CONNECTED) 19] create /zk_test
Created /zk_test
#創(chuàng)建一個臨時節(jié)點
[zk: 192.168.0.143:2181(CONNECTED) 25] create -e /ephemeral_node
Created /ephemeral_node
7、刪除znode節(jié)點
#刪除節(jié)點前要求節(jié)點目錄為空,不存在子節(jié)點
[zk: 192.168.0.143:2181(CONNECTED) 34] delete /config
Node not empty: /config
[zk: 192.168.0.143:2181(CONNECTED) 35] delete /config/topics/test
[zk: 192.168.0.143:2181(CONNECTED) 27] delete /ephemeral_node
#如果要刪除整個節(jié)點及子節(jié)點可以使用deleteall
[zk: 192.168.0.143:2181(CONNECTED) 36] deleteall /config
8、指定路徑下的配額管理
??配額管理主要有兩個參數(shù)
- -n限制子節(jié)點的數(shù)量(包括自身)
- -b限制一條路徑的字節(jié)(數(shù)據(jù)長度)
#查看配額
[zk: localhost:2181(CONNECTED) 21] listquota /config/topics
absolute path is /zookeeper/quota/config/topics/zookeeper_limits
Output quota for /config/topics count=2,bytes=-1
Output stat for /config/topics count=6,bytes=0
#設(shè)置配額
[zk: localhost:2181(CONNECTED) 15] setquota -n 2 /config/topics
#刪除配額
[zk: localhost:2181(CONNECTED) 24] delquota /config/topics
9、顯示一個節(jié)點的狀態(tài)
[zk: localhost:2181(CONNECTED) 25] stat /config/topics
cZxid = 0x100000024
ctime = Thu Mar 03 15:16:38 CST 2022
mZxid = 0x100000024
mtime = Thu Mar 03 15:16:38 CST 2022
pZxid = 0x100000031
cversion = 5
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 5
10、查看路徑子節(jié)點
??命令語法:ls [-s] [-w] [-R] path
- -s 同時顯示stat信息
- -w 只顯示子節(jié)點信息,默認選項
- -R 遞歸顯示
[zk: localhost:2181(CONNECTED) 27] ls -R /
/
/config
/zk_test
/zookeeper
/config/topics
/config/topics/test
/config/topics/test2
/config/topics/test3
/config/topics/test4
/config/topics/test5
/zookeeper/config
/zookeeper/quota
11、獲取指定路徑下的數(shù)據(jù)
[zk: localhost:2181(CONNECTED) 4] get /zookeeper/config
server.1=192.168.0.142:2888:3888:participant
server.2=192.168.0.143:2888:3888:participant
server.3=192.168.0.144:2888:3888:participant
version=0
12、獲取子節(jié)點數(shù)量
[zk: localhost:2181(CONNECTED) 10] getAllChildrenNumber /zookeeper
2
13、獲取會話創(chuàng)建的臨時節(jié)點
[zk: localhost:2181(CONNECTED) 14] create -e /config/abc
Created /config/abc
[zk: localhost:2181(CONNECTED) 15] getEphemerals /config
[/config/abc]
14、設(shè)置或者更新路徑數(shù)據(jù)
[zk: 192.168.0.143:2181(CONNECTED) 45] set /config/topics/test “this is a test”
[zk: 192.168.0.143:2181(CONNECTED) 46] get /config/topics/test
this is a test
15、設(shè)置ACL
ACL權(quán)限 | ACL 簡寫 | 允許的操作 |
---|---|---|
CREATE | c | 創(chuàng)建子節(jié)點 |
READ | r | 獲取節(jié)點的數(shù)據(jù)和它的子節(jié)點 |
WRITE | w | 設(shè)置節(jié)點的數(shù)據(jù) |
DELETE | d | 刪除子節(jié)點 (僅下一級節(jié)點) |
ADMIN | a | 設(shè)置 ACL 權(quán)限 |
??ZooKeeper內(nèi)置了一些權(quán)限控制方案,可以用以下方案為每個節(jié)點設(shè)置權(quán)限:
方案 | 描述 |
---|---|
world | 只有一個用戶:anyone,代表所有人(默認) |
ip | 使用IP地址認證 |
auth | 使用已添加認證的用戶認證 |
digest | 使用“用戶名:密碼”方式認證 |
#遠程登錄可以查看/config權(quán)限
[zk: 192.168.0.144:2181(CONNECTED) 0] getAcl /config
'ip,'192.168.0.0/24
: cdrwa
#本地登錄查看或者配置config會報錯無權(quán)限
[zk: localhost:2181(CONNECTED) 37] ls /config
Insufficient permission : /config
#設(shè)置auth方案
[zk: 192.168.0.144:2181(CONNECTED) 2] create /mynode1 hello
Created /mynode1
[zk: 192.168.0.144:2181(CONNECTED) 3] addauth digest admin:admin
[zk: 192.168.0.144:2181(CONNECTED) 4] setAcl /mynode1 auth:admin:cdrwa
[zk: 192.168.0.144:2181(CONNECTED) 5] getAcl /mynode1
'digest,'admin:x1nq8J5GOJVPY6zgzhtTtA9izLc=
: cdrwa
16、獲取ACL
[zk: localhost:2181(CONNECTED) 17] getAcl /config
'world,'anyone
: cdrwa
17、同步數(shù)據(jù)集群間數(shù)據(jù)
[zk: 192.168.0.143:2181(CONNECTED) 48] sync /
Sync is OK
18、查看命令執(zhí)行歷史
[zk: 192.168.0.143:2181(CONNECTED) 49] history
39 - create /config
40 - create /config/topics
41 - create /config/topics/test
42 - ls /
43 - help
44 - help
45 - set /config/topics/test “this is a test”
46 - get /config/topics/test
47 - set -v 2 /config/topics/test “this is a test 2”
48 - sync /
49 - history
19、退出客戶端
[zk: 192.168.0.143:2181(CONNECTED) 50] quit
WATCHER::
WatchedEvent state:Closed type:None path:null
2022-03-03 03:58:33,818 [myid:] - INFO [main:ZooKeeper@1619] - Session: 0x20000253ae20004 closed
2022-03-03 03:58:33,818 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@578] - EventThread shut down for session: 0x20000253ae20004
2022-03-03 03:58:33,820 [myid:] - ERROR [main:ServiceUtils@42] - Exiting JVM with code 0文章來源:http://www.zghlxwxcb.cn/news/detail-464830.html
20、更多信息查看
??更多命令幫助信息我們可以查閱官網(wǎng)幫助文檔,zookeeper 3.6.3版本命令幫助文件見鏈接:
https://zookeeper.apache.org/doc/r3.6.3/zookeeperCLI.html文章來源地址http://www.zghlxwxcb.cn/news/detail-464830.html
到了這里,關(guān)于常用命令之zookeeper命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!