ZooKeeper 命令行客户端

ZooKeeper 命令行客户端

目录

启动客户端

  • 启动本地 zookeeper 客户端:./zkCli.sh
[root@node-02 bin]# ./zkCli.sh
Connecting to localhost:2181  # 2181 是客户端监听端口
...
[zk: localhost:2181(CONNECTED) 0] 
  • 启动远程 zookeeper 客户端:./zkCli.sh –server ip:port
[root@node-01 bin]# ./zkCli.sh -server node-02:2181
Connecting to hdp-02:2181
...
[zk: node-02:2181(CONNECTED) 0] 

客户端命令

get 命令

获取节点信息,注意节点的路径皆为绝对路径,也就是说必要要从/(根路径)开始。

[zk: localhost:2181(CONNECTED) 1] get /aa
hello world #节点存储的数据
cZxid = 0x0 #节点创建时的zxid
ctime = Thu Jan 01 08:00:00 CST 1970 #节点创建时间
mZxid = 0x5 #节点最近一次更新时的zxid
mtime = Thu Apr 27 15:09:00 CST 2017 #节点最近一次更新的时间
pZxid = 0xc #最近一次子节点的创建/删除的时间戳
cversion = 1 #子节点数据更新次数
dataVersion = 2 #本节点数据更新次数
aclVersion = 0 #节点ACL(授权信息)的更新次数
ephemeralOwner = 0x0 #该节点不是临时节点
dataLength = 11 #节点数据长度
numChildren = 1 #节点的子节点个数
[zk: localhost:2181(CONNECTED) 1] get /aa watch # watch 监听节点数据(只监听一次)
[zk: localhost:2181(CONNECTED) 1] set /aa dfdsf
#修改节点数据显示监听结果
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/aa

ls 命令

获取路径下的节点信息(注意此路径为绝对路径,类似于 linux 的ls命令)

[zk: localhost:2181(CONNECTED) 1] ls /zookeeper

ls2 命令

ls2为ls命令的扩展,比 ls 命令多输出本节点信息

[zk: hdp-01(CONNECTED) 12] ls2 /
[aa, zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x20000001c
cversion = 6
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2

create 命令

创建节点,其中 -s 为顺序节点,-e 临时节点

# 创建持久化节点(默认)
[zk: localhost:2181(CONNECTED) 1] create /aa "aa"
# 创建临时节点(客户端连接断开节点将自动删除)
[zk: localhost:2181(CONNECTED) 1] create -e /bb "bb"
# 创建带序号节点(自动给节点添加序号,避免节点重复)
[zk: localhost:2181(CONNECTED) 1] create -s /cc "cc"
Created /cc0000000006
# 创建临时且带序号节点
[zk: localhost:2181(CONNECTED) 1] create  -e -s /dd "dd"

set 命令

设置节点的数据

[zk: localhost:2181(CONNECTED) 1] set /zookeeper "hello world"

rmr 命令

删除节点命令

此命令与delete命令不同的是delete不可删除有子节点的节点,但是rmr命令可以删除,注意路径为绝对路径

[zk: localhost:2181(CONNECTED) 1] rmr /zookeeper/znode

delete 命令

删除节点(删除的节点不能有子节点)

[zk: hdp-01(CONNECTED) 28] delete /aa

stat 命令

查看节点状态信息,与 get 命令区别是无法查看节点数据

[zk: localhost:2181(CONNECTED) 1] stat /
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x1f
mtime = Thu Apr 27 16:05:14 CST 2017
pZxid = 0xc
cversion = 1
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 1

connect 命令

连接 zookeeper 服务端,与 close 命令配合使用可以连接或者断开 zookeeper 服务端

[zk: localhost:2181(CONNECTED) 0] connect 127.0.0.1:2181

quit 命令

退出客户端连接

[zk: localhost:2181(CONNECTED) 1] quit

close 命令

断开客户端与服务端的连接

[zk: localhost:2181(CONNECTED) 1] close

printwatches 命令

设置和显示监视状态,on 或者 off

[zk: localhost:2181(CONNECTED) 1] printwatches on

history 命令

列出最近的历史命令

[zk: hdp-01(CONNECTED) 14] history
4 - status /aa
5 - stat /aa
6 - close
7 - ls /
8 - connect hdp-01
9 - ls /
10 - ls2 /
11 - ls /
12 - ls2 /
13 - hostory
14 - history

redo 命令

再次执行某命令,其中 10 为命令ID,需与 history 命令配合使用

[zk: hdp-01(CONNECTED) 28] redo 10

sync 命令

强制同步

由于请求在半数以上的 zookeeper 服务器节点上生效就表示此请求生效,那么就会有一些zookeeper 服务器节点上的数据是旧的,sync 命令就是强制同步所有的更新操作

[zk: hdp-01(CONNECTED) 28] sync /zookeeper

setquota 命令

设置子节点个数和数据长度配额

# 设置 /zookeeper/aa 子节点个数最大为4[zk: hdp-01(CONNECTED) 28] setquota –n 4 /zookeeper/aa# 设置 /zookeeper/bb 节点长度最大为100[zk: hdp-01(CONNECTED) 28] setquota –b 100 /zookeeper/bb 

listquota 命令

显示配额

[zk: hdp-01(CONNECTED) 22] listquota /zookeeperabsolute path is/zookeeper/quota/zookeeper/zookeeper_limitsOutput quota for /zookeepercount=2,bytes=-1 #节点个数限额为2,长度无限额。 

delquota命令

删除配额,-n 为子节点个数,-b 为节点数据长度。

[zk: localhost:2181(CONNECTED) 1] delquota –n 2

请参见 listquota 和 setquota命令

help 命令

显示 zookeeper 客户端支持的所有命令

[zk: localhost:2181(CONNECTED) 7] help[zk: localhost:2181(CONNECTED) 11] helpZooKeeper -server host:port cmd args        stat path [watch]        set path data [version]        ls path [watch]        delquota [-n|-b] path        ls2 path [watch]        setAcl path acl        setquota -n|-b val path        history         redo cmdno        printwatches on|off        delete path [version]        sync path        listquota path        rmr path        get path [watch]        create [-s] [-e] path data acl        addauth scheme auth        quit         getAcl path        close         connect host:port

命令可选项 watch:表示监听节点数据

上一篇:java学习笔记--内部类:(参考java核心技术卷1and转载)


下一篇:学extjs笔记 -- David Chen