Zookeeper的CLI命令

Zookeeper的命令行界面(CLI)用於與Zookeeper集羣進行交互以用於開發目的。

一、CLI命令

[zk: localhost:2181(CONNECTED) 0] -h
ZooKeeper -server host:port cmd args
    addauth scheme auth
    close
    config [-c] [-w] [-s]
    connect host:port
    create [-s] [-e] [-c] [-t ttl] path [data] [acl]
    delete [-v version] path
    deleteall path
    delquota [-n|-b] path
    get [-s] [-w] path
    getAcl [-s] path
    history
    listquota path
    ls [-s] [-w] [-R] path
    ls2 path [watch]            # 已被棄用,等價於ls -s
    printwatches on|off
    quit
    reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
    redo cmdno
    removewatches path [-c|-d|-a] [-l]
    rmr path
    set [-s] [-v version] path data
    setAcl [-s] [-v version] [-R] path acl
    setquota -n|-b val path
    stat [-w] path
    sync path
命令 描述

connect host:port

連接到某臺服務器上
create [-s] [-e] [-c] [-t ttl] path [data] [acl] 創建一個新的znode節點,-s表示順序節點,-e表示臨時節點,acl訪問控制列表

delete [-v version] path

刪除某一節點,只能刪除無子節點的節點。-v 表示節點版本號
deleteall path 遞歸的刪除某一節點及其子節點,同rmr命令
get [-s] [-w] path 獲取節點數據信息,-s表示獲取節點信息,包括時間戳、版本號、數據大小等

getAcl [-s] [-w] path

獲取節點的訪問控制列表,-s表示順序節點
ls [-s] [-w] [-R] path 獲取節點列表,-s表示獲取節點信息,相當於ls2,-R表示遞歸的獲取

ls2 path [watch]

獲取節點列表及節點信息,該命令在最新版本中已棄用

set [-s] [-v version] path data

設置節點數據,-s表示節點爲順序節點,-v 指定版本號

setAcl [-s] [-v version] [-R] path acl 設置節點的訪問控制列表,-s表述順序節點,-v指定版本號,-R遞歸的設置
state [-w] path 查看節點信息

setquota -n|-b val path

設置節點的quota(限制),-n表示子節點個數,-b表示空間大小
delquota [-n|-b] path 刪除節點的quota(限制)
listquota path 列出節點的quota信息
printwatches 設置和顯示監視狀態,on開啓,off關閉

history

列出本次會話中的歷史操作命令
redo cmdno 再次執行某一命令,cmdno爲前一次改名執行是的ID,可通過history命令查看

rmr

遞歸的刪除某一節點及其子節點,該命令在最新版本中已棄用

sync 強制同步所有的更新操作到所有節點
addauth schema auth 增加節點認證
close 關閉連接,但是客戶端不退出
quit 關閉連接並退出客戶端

二、創建Znodes

語法

create [-s] [-e] [-c] [-t ttl] path [data] [acl]

注:-s 表示創建順序節點

        -e 表示創建臨時節點

        -c 

        -t

        acl 訪問控制列表

舉例

[zk: localhost:2181(CONNECTED) 5] create /FirstZnode "MyFirstZookeeper-App”    # 創建永久節點
Created /FirstZnode

[zk: localhost:2181(CONNECTED) 13] create -s /FirstSequentialZnode "MyFirstSequentialZnode-App"  # 創建順序節點
Created /FirstSequentialZnode0000000002

[zk: localhost:2181(CONNECTED) 16] create -e /FirstEphemeralZnode "MyFirstEphemeralZnode-App”    # 創建臨時節點,當客戶端斷開連接時,該節點將被刪除
Created /FirstEphemeralZnode

三、獲取節點數據

語法

get [-s] [-w] path

注:-s 節點數據+節點信息

        -w 設置監視?

Key

Value

cZxid

節點被創建時的事物的ID
crime 節點的創建時間
mZxid 節點最後一次被修改的事務的ID
mtime 節點最後一次被修改的時間
pZxid 自節點列表最近一次被修改的事務的ID
cversion 子節點版本號
dataVersion 數據版本號
aclVersion

ACL版本號

ephemeralOwner 創建臨時節點的事務的ID,持久節點事務爲0
dataLength 數據長度,每個節點都可保存數據
numChildren 子節點的個數

舉例

[zk: localhost:2181(CONNECTED) 6] get /FirstZnode
MyFirstZookeeper-App

[zk: localhost:2181(CONNECTED) 22] get -s /FirstZnode    # 獲取節點數據+節點信息
MyFirstZnode-App
cZxid = 0x6
ctime = Tue Sep 24 08:10:44 CST 2019
mZxid = 0xb
mtime = Tue Sep 24 08:29:42 CST 2019
pZxid = 0x6
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 16
numChildren = 0

[zk: localhost:2181(CONNECTED) 15] get /FirstSequentialZnode0000000002    # 獲取順序節點必須指定完整路徑
MyFirstSequentialZnode-App

四、設置節點數據

語法

set [-s] [-v version] path data

注:-s 表示設置順序節點

        -v 表示設置版本號?

舉例

[zk: localhost:2181(CONNECTED) 18] set /FirstZnode "MyFirstZnode-App"
[zk: localhost:2181(CONNECTED) 19] get /FirstZnode
MyFirstZnode-App

五、創建子節點

語法

create [-s] [-e] [-c] [-t ttl] /parent/path/subnode/path [data] [acl]

注:參數同創建節點

舉例

[zk: localhost:2181(CONNECTED) 23] create /FirstZnode/Child1 "MyFirstChildZnode-App"
Created /FirstZnode/Child1

六、列出子節點列表

語法

ls [-s] [-w] [-R] path

注:-s 列出path指定的節點的節點信息

        -w 

        -R 遞歸的列出子節點列表

舉例

[zk: localhost:2181(CONNECTED) 24] ls /
[FirstEphemeralZnode, FirstSequentialZnode0000000002, FirstZnode, zookeeper]

[zk: localhost:2181(CONNECTED) 25] ls -s /
[FirstEphemeralZnode, FirstSequentialZnode0000000002, FirstZnode, zookeeper]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0xa
cversion = 4
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 4

[zk: localhost:2181(CONNECTED) 26] ls -R /
/
/FirstEphemeralZnode
/FirstSequentialZnode0000000002
/FirstZnode
/zookeeper
/FirstZnode/Child1
/zookeeper/config
/zookeeper/quota

七、查看節點信息

語法

stat [-w] path

注:-w

舉例

[zk: localhost:2181(CONNECTED) 29] stat /FirstZnode
cZxid = 0x6
ctime = Tue Sep 24 08:10:44 CST 2019
mZxid = 0xb
mtime = Tue Sep 24 08:29:42 CST 2019
pZxid = 0xc
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 16
numChildren = 1

八、刪除節點

語法

rmr path                    # 遞歸的刪除指定的znode及其子節點,舊版本的命令
delete [-v version] path    # 刪除不帶子節點的節點
deleteall path              # 功能同rmr,新版本的命令

舉例

[zk: localhost:2181(CONNECTED) 4] ls -R /                  # 查看所有節點
/
/FirstSequentialZnode0000000002
/FirstZnode
/zookeeper
/FirstZnode/Child1
/zookeeper/config
/zookeeper/quota
[zk: localhost:2181(CONNECTED) 5] rmr /FirstZnode          # 舊命令刪除
The command 'rmr' has been deprecated. Please use 'deleteall' instead.
[zk: localhost:2181(CONNECTED) 6]
[zk: localhost:2181(CONNECTED) 6]
[zk: localhost:2181(CONNECTED) 6] deleteall /FirstZnode    # 新命令刪除,提示不存在是因爲rmr已經將其刪除
Node does not exist: /FirstZnode
[zk: localhost:2181(CONNECTED) 7] ls -R /                  # 查看確認刪除
/
/FirstSequentialZnode0000000002
/zookeeper
/zookeeper/config
/zookeeper/quota

待完善......

 

參考:

[1] http://www.dba.cn/book/zookeeper/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章