from:
在zookeeper中,每一次对节点的写操作都认为是一次事务,每一个事务,系统都会分配一个唯一的事务ID,czxid代表该节点被创建的事务ID,ctime表示创建的时间,mzxid表示最后一次被更新的事务ID,mtime是修改时间,pzxid表示子节点列表最后一次被更新的事务ID,cversion子节点的版本号,dataversion数据版本号,aclversion权限版本号,ephemeralOwner用于临时节点,代表临时节点的事务ID,如果为持久节点则为0,dataLength代表节点存储的数据的长度,numChildren当前节点的子节点个数。
修改的时候要么不携带版本号,要么携带的版本号要跟dataVersion的版本号一致,否则就会报错(类似于乐观锁机制)。
当创建节点超出配额时,zookeeper不会抛出异常,会在zookeeper.out记录警告信息
from:
.sh 服务启动成功后查看具体节点信息,是否为leader。
bin/zkServer.sh status
help ZooKeeper-server host:port cmd args connect host:port get路径[watch]//得到节点数据 ls 节点路径[watch]//查看节点信息 set节点路径数据[版本整型值]//设置节点数据 delquota [-n|-b] path quit printwatches on|off create [-s][-e]节点路径节点数据 acl //创建一个新的节点 stat path [watch] close ls2 节点路径[watch]//查看节点信息并能看到更新次数等数据 history listquota path setAcl path acl getAcl path sync path redo cmdno addauth scheme auth delete节点路径[版本整型值]//删除节点 setquota -n|-b val path
from:
【Apache ZooKeeper】命令行zkCli.sh使用指南
ZooKeeper命令行
ZooKeeper的命令在/usr/lib/zookeeper/bin文件夹下
查看具体结点信息
bash zkServer.sh status
root@ubuntu:/usr/lib/zookeeper/bin# bash zkServer.sh status
JMX enabled by default
Using config: /usr/lib/zookeeper/bin/../conf/zoo.cfg
Mode: standalone
查看哪个结点被选作leader或者follower
echo stat|nc 127.0.0.1 2181
root@ubuntu:/usr/lib/zookeeper/bin# echo stat|nc 127.0.0.1 2181
Zookeeper version: 3.4.5-cdh4.4.0--1, built on 09/04/2013 01:46 GMT
Clients:
/127.0.0.1:57736[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: standalone
Node count: 4
测试是否启动了该Server,若回复imok表示已经启动
echo ruok|nc 127.0.0.1 2181
root@ubuntu:/usr/lib/zookeeper/bin# echo ruok|nc 127.0.0.1 2181
imok
ZooKeeper命令行类似于shell。
当启动 ZooKeeper 服务成功之后,输入下述命令,连接到 ZooKeeper 服务:
bash zkCli.sh –server 192.168.255.133:2181
root@ubuntu:/usr/lib/zookeeper/bin# bash zkCli.sh -server 192.168.255.133:2181
Connecting to 192.168.255.133:2181
2013-09-12 15:38:39,6 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.5-cdh4.4.0--1, built on 09/04/2013 01:46 GMT
2013-09-12 15:38:39,657 [myid:] - INFO [main:Environment@100] - Client environment:host.name=ubuntu
2013-09-12 15:38:39,659 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.6.0_43
2013-09-12 15:38:39,660 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Sun Microsystems Inc.
2013-09-12 15:38:39,662 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/local/jdk1.6.0_43/jre
2013-09-12 15:38:39,6 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/usr/lib/zookeeper/bin/../build/classes:/usr/lib/zookeeper/bin/../build/lib/*.jar:/usr/lib/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/lib/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/usr/lib/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/usr/lib/zookeeper/bin/../lib/log4j-1.2.15.jar:/usr/lib/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/lib/zookeeper/bin/../zookeeper-3.4.5-cdh4.4.0.jar:/usr/lib/zookeeper/bin/../src/java/lib/*.jar:/usr/lib/zookeeper/bin/../conf:
2013-09-12 15:38:39,665 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/local/jdk1.6.0_43/jre/lib/amd/server:/usr/local/jdk1.6.0_43/jre/lib/amd:/usr/local/jdk1.6.0_43/jre/../lib/amd:/usr/java/packages/lib/amd:/usr/lib:/lib:/lib:/usr/lib
2013-09-12 15:38:39,667 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2013-09-12 15:38:39,668 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2013-09-12 15:38:39,669 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2013-09-12 15:38:39,670 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd
2013-09-12 15:38:39,670 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.2.0-51-generic
2013-09-12 15:38:39,672 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2013-09-12 15:38:39,672 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2013-09-12 15:38:39,673 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/usr/lib/zookeeper/bin
2013-09-12 15:38:39,674 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=192.168.255.133:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@2666e815
Welcome to ZooKeeper!
JLine support is enabled
2013-09-12 15:38:39,720 [myid:] - INFO [main-SendThread(192.168.255.133:2181):ClientCnxn$SendThread@966] - Opening socket connection to server 192.168.255.133/192.168.255.133:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
2013-09-12 15:38:39,729 [myid:] - INFO [main-SendThread(192.168.255.133:2181):ClientCnxn$SendThread@849] - Socket connection established to 192.168.255.133/192.168.255.133:2181, initiating session
[zk: 192.168.255.133:2181(CONNECTING) 0] 2013-09-12 15:38:39,748 [myid:] - INFO [main-SendThread(192.168.255.133:2181):ClientCnxn$SendThread@1207] - Session establishment complete on server 192.168.255.133/192.168.255.133:2181, sessionid = 0x141102059a70001, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
输入help显示帮助信息:
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
[zk: 192.168.255.133:2181(CONNECTED) 1]
连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息,并在屏幕输出“ Welcome to ZooKeeper ”等信息。
命令行工具的一些简单操作如下:
传递四个字母的字符串给ZooKeeper,ZooKeeper会返回一些有用的信息。
ZooKeeper 四字命令 | 功能描述 |
conf | 输出相关服务配置的详细信息。 |
cons | 列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。 |
dump | 列出未经处理的会话和临时节点。 |
envi | 输出关于服务环境的详细信息(区别于 conf 命令)。 |
reqs | 列出未经处理的请求 |
ruok | 测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。 |
stat | 输出关于性能和连接的客户端的列表。 |
wchs | 列出服务器 watch 的详细信息。 |
wchc | 通过 session 列出服务器 watch 的详细信息,它的输出是一个与watch 相关的会话的列表。 |
wchp | 通过路径列出服务器 watch 的详细信息。它输出一个与 session相关的路径。 |
例如:
root@ubuntu:/usr/lib/zookeeper/bin# echo conf |nc 192.168.255.133 2181
clientPort=2181
dataDir=/var/lib/zookeeper/version-2
dataLogDir=/var/log/zookeeper/version-2
tickTime=2000
maxClientCnxns=50
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=0
+
+
+
-
-
-