ZooKeeper的命令行操作
运行 zkCli.sh –server <ip:port>
进入命令行工具,连接后使用help可以查看所有命令:
使用 ls 命令来查看当前 ZooKeeper 中所包含的内容:
1
[zk: 202.115.36.251:2181(CONNECTED) 1] ls /
创建一个新的 znode ,使用 create /zk myData 。这个命令创建了一个新的 znode 节点“ zk ”以及与它关联的字符串:
1
[zk: 202.115.36.251:2181(CONNECTED) 2] create /zk "myData“
我们运行 get 命令来确认 znode 是否包含我们所创建的字符串:
1
[zk: 202.115.36.251:2181(CONNECTED) 3] get /zk
监听这个节点的变化,当另外一个客户端改变/zk时,它会打印下面的
1
2
3[zk: localhost:2181(CONNECTED) 4] get /zk watch
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/zk下面我们通过 set 命令来对 zk 所关联的字符串进行设置:
1
[zk: 202.115.36.251:2181(CONNECTED) 4] set /zk "zsl“
下面我们将刚才创建的 znode 删除:
1
[zk: 202.115.36.251:2181(CONNECTED) 5] delete /zk
如果znode下面有子节点,用delete是删除不了的,要用递归删除:rmr
1
[zk: 202.115.36.251:2181(CONNECTED) 5] rmr /zk
实际测试:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28[root@BC-VM-edce4ac67d304079868c0bb265337bd4 zookeeper-3.4.6]# bin/zkCli.sh -127.0.0.1:2181
Connecting to localhost:2181
2015-06-11 10:55:14,387 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
...
[zk: localhost:2181(CONNECTED) 5] help
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
rmr path
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
下面测试一下常用的命令:
- create:创建路径结点。
- ls:查看路径下的所有结点。
- get:获得结点上的值。
- set:修改结点上的值。
- delete:删除结点。
1 | [zk: localhost:2181(CONNECTED) 6] create /zktest mydata |
ZooKeeper API的使用
org.apache.zookeeper.Zookeeper是客户端入口主类,负责建立与server的会话。
它提供了如下几类主要方法:
功能 | 描述 |
---|---|
create | 在本地目录树中创建一个节点 |
delete | 删除一个节点 |
exists | 测试本地是否存在目标节点 |
get/set data | 从目标节点上读取 / 写数据 |
get/set ACL | 获取 / 设置目标节点访问控制列表信息 |
get children | 检索一个子节点上的列表 |
sync | 等待要被传送的数据 |
增删改查的demo
1 | package com.lzumetal.zookeeper.helloworld; |
相关代码以上传至GitHub:https://github.com/liaosilzu2007/zookeeper-parent.git