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/

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