zookeeper提供了很多方便的功能,方便我们查看服务器的状态,增加,修改,删除数据(入口是zkServer.sh和zkCli.sh)。
还提供了一系列四字命令,方便我们跟服务器进行各种交互,来确认服务器当前的工作情况(这也是服务器监控告警的基础)。
本文所讲的zkCli.sh和zkServer.sh均位于以下目录中:
/usr/local/zookeeper-server1
目录分布情况请参考我的另一篇文章:
zookeeper集群搭建 - http://blog.csdn.net/linux_bug/article/details/48713881
zkServer.sh
提供的主要功能如下:
1、查看服务器状态
[root@rocket zookeeper-server1]# bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-server1/bin/../conf/zoo.cfg
Mode: leader
2、启停服务器
[root@rocket zookeeper-server1]# bin/zkServer.sh help
JMX enabled by default
Using config: /usr/local/zookeeper-server1/bin/../conf/zoo.cfg
Usage: bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
zkCli.sh
连接zookeeper
[root@rocket zookeeper-server1]# bin/zkCli.sh -server localhost:2181
Connecting to localhost:2181
以下省略1W字。。
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
键入help查看所有支持的命令
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -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
常用命令
1)查看当前节点列表
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
2)创建节点
[zk: localhost:2181(CONNECTED) 2] create /test "test"
Created /test
[zk: localhost:2181(CONNECTED) 3] ls /
[zookeeper, test]
3)查看节点数据
[zk: localhost:2181(CONNECTED) 4] get /test
"test"
cZxid = 0x300000007
ctime = Thu Sep 24 05:54:51 PDT 2015
mZxid = 0x300000007
mtime = Thu Sep 24 05:54:51 PDT 2015
pZxid = 0x300000007
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
4)设置节点数据
[zk: localhost:2181(CONNECTED) 7] set /test "111111"
cZxid = 0x300000007
ctime = Thu Sep 24 05:54:51 PDT 2015
mZxid = 0x300000008
mtime = Thu Sep 24 05:57:40 PDT 2015
pZxid = 0x300000007
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
[zk: localhost:2181(CONNECTED) 8] get /test
"111111"
cZxid = 0x300000007
ctime = Thu Sep 24 05:54:51 PDT 2015
mZxid = 0x300000008
mtime = Thu Sep 24 05:57:40 PDT 2015
pZxid = 0x300000007
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
5)删除节点
[zk: localhost:2181(CONNECTED) 9] delete /test
[zk: localhost:2181(CONNECTED) 10] ls /
[zookeeper]
zookeeper四字命令的使用
传递四个字母的字符串给zookeeper,zookeeper会返回一些有用的信息。
zookeeper 四字命令 |
功能描述 |
conf |
输出相关服务配置的详细信息。 |
cons |
列出所有连接到服务器的客户端的完全的连接 /会话的详细信息。包括“接受 / 发送”的包数量、会话id 、操作延迟、最后的操作执行等等信息。 |
dump |
列出未经处理的会话和临时节点。 |
envi |
输出关于服务环境的详细信息(区别于 conf命令)。 |
reqs |
列出未经处理的请求 |
ruok |
测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。 |
stat |
输出关于性能和连接的客户端的列表。 |
wchs |
列出服务器 watch的详细信息。 |
wchc |
通过 session列出服务器 watch的详细信息,它的输出是一个与watch相关的会话的列表。 |
wchp |
通过路径列出服务器 watch的详细信息。它输出一个与 session相关的路径。 |
查看连接到结点上所有的client信息,被选作leader还是follower
[root@rocket zookeeper-server1]# echo stat|nc 127.0.0.1 2181
Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
Clients:
/127.0.0.1:52547[0](queued=0,recved=1,sent=0)
/0:0:0:0:0:0:0:1:53913[1](queued=0,recved=4,sent=4)
Latency min/avg/max: 0/3/9
Received: 13
Sent: 12
Connections: 2
Outstanding: 0
Zxid: 0x300000005
Mode: leader
Node count: 4
测试是否启动了该Server,若回复imok表示已经启动
[root@rocket zookeeper-server1]# echo ruok|nc 127.0.0.1 2181
Imok
查看连接到服务器的所有客户端的会话信息
[root@rocket zookeeper-server1]# echo cons|nc 127.0.0.1 2181
/127.0.0.1:52552[0](queued=0,recved=1,sent=0)
/0:0:0:0:0:0:0:1:53913[1](queued=0,recved=88,sent=88,sid=0x14ffe63e9ce0001,lop=PING,est=1443098949817,to=30000,lcxid=0x2,lzxid=0x30000000a,lresp=1443099814079,llat=0,minlat=0,avglat=0,maxlat=3)
其它命令的使用留待读者自己去研究:)