zookeeper客户端连接
zookeeper的客户端库有两种语言:java和c,本文将只是介绍java语言的客户端库的连接用法。
一旦zookeeper已经运行起来,有一些选项可以用来连接zookeeper。
java:用法bin/zkCli.sh -server 127.0.0.1:2181
这样可以让你执行简单的,像文件一样的操作。
如果你已经连接上了zookeeper,应该看到像这样的一些信息。
Connecting to localhost:2181
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
Welcome to ZooKeeper!
JLine support is enabled
[zkshell: 0]
在shell上,输入"help"得到一个命令的列表,这些命令都可以在客户端执行,命令列表:
[zkshell: 0] help
ZooKeeper host:port cmd args
get path [watch]
ls path [watch]
set path data [version]
delquota [-n|-b] path
quit
printwatches on|off
create path data acl
stat path [watch]
listquota path
history
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
deleteall path
setquota -n|-b val path
从上面的命令中,你可以尝试一些简单的命令,来对这个简单的命令行接口有一个初步的体验,
首先,从发布"ls"命令开始:
[zkshell: 8] ls /
[zookeeper]
接着,通过执行 create /zk_test my_dat 创建一个新的zookeeper节点。这样就可以创建一个新的节点,并且将字符串“my_data"和新节点zk_test关联在一起,
[zkshell: 9] create /zk_test my_data
Created /zk_test
这时再发布 ls / 命令可以看到目录发生了什么变化:
[zkshell: 11] ls /
[zookeeper, zk_test]
注意到目录zk_test已经被创建了。
下一步,通过执行 get 命令来验证数据是否已经关联在节点上了:
[zkshell: 12] get /zk_test
my_data
cZxid = 5
ctime = Fri Jun 05 13:57:06 PDT 2009
mZxid = 5
mtime = Fri Jun 05 13:57:06 PDT 2009
pZxid = 5
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0
dataLength = 7
numChildren = 0
我们可以通过发布 set 命令来改变zk_test节点上关联的数据:
[zkshell: 14] set /zk_test junk
cZxid = 5
ctime = Fri Jun 05 13:57:06 PDT 2009
mZxid = 6
mtime = Fri Jun 05 14:01:52 PDT 2009
pZxid = 5
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0
dataLength = 4
numChildren = 0
[zkshell: 15] get /zk_test
junk
cZxid = 5
ctime = Fri Jun 05 13:57:06 PDT 2009
mZxid = 6
mtime = Fri Jun 05 14:01:52 PDT 2009
pZxid = 5
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0
dataLength = 4
numChildren = 0
注意,我们setting了数据后执行一个get 命令,来验证数据确实是改变了。
最后,让我们通过发布以下命令来删除节点:
[zkshell: 16] delete /zk_test
[zkshell: 17] ls /
[zookeeper]
[zkshell: 18]
如果你想退出客户端连接,可以发布quit命令:
[zkshell: 18] quit
Quitting...
java客户端,有个zkclient开源客户端,可以参考:
https://github.com/jjavaboy/lam-nio/tree/master/lam-zookeeper/src/main/java/org/lam/zookeeper/zkclient
英文原文:
http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html