zookeeper提供了很多方便的功能,方便我们查看服务器的状态,增加,修改,删除数据(入口是zkServer.sh和zkCli.sh)。
还提供了一系列四字命令,方便我们跟服务器进行各种交互,来确认服务器当前的工作情况(这也是服务器监控告警的基础)。
本文所讲的zkCli.sh和zkServer.sh均位于以下目录中:
/usr/local/zookeeper-3.3.6/bin
提供的主要功能如下:
1、查看服务器状态
[root@SIP1 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /data/usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: leader
2、启停服务器
[root@SIP1 bin]#./zkServer.sh help
JMX enabled bydefault
Using config:/data/usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
Usage:./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
连接zookeeper
[root@SIP1 bin]#./zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
Welcome toZooKeeper!
JLine support isenabled
WATCHER::
WatchedEventstate:SyncConnected type:None path:null
[zk: 127.0.0.1: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 valpath
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] pathdata 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 四字命令 |
功能描述 |
conf |
输出相关服务配置的详细信息。 |
cons |
列出所有连接到服务器的客户端的完全的连接 /会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。 |
dump |
列出未经处理的会话和临时节点。 |
envi |
输出关于服务环境的详细信息(区别于 conf命令)。 |
reqs |
列出未经处理的请求 |
ruok |
测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。 |
stat |
输出关于性能和连接的客户端的列表。 |
wchs |
列出服务器 watch的详细信息。 |
wchc |
通过 session列出服务器 watch的详细信息,它的输出是一个与watch相关的会话的列表。 |
wchp |
通过路径列出服务器 watch的详细信息。它输出一个与 session相关的路径。 |
下面举一些例子说明一下:
查看连接到结点上所有的client信息,被选作leader还是follower
[root@SIP1 bin]# echo stat|nc 127.0.0.1 2181
Zookeeper version: 3.3.6-1366786, built on 07/29/2012 06:22 GMT
Clients:
/127.0.0.1:50063[0](queued=0,recved=1,sent=0)
/127.0.0.1:43284[1](queued=0,recved=755,sent=755)
Latency min/avg/max: 0/3/69
Received: 1609
Sent: 1590
Outstanding: 0
Zxid: 0x20000013c
Mode: leader
Node count: 125
测试是否启动了该Server,若回复imok表示已经启动
[root@SIP1 bin]# echo ruok|nc 127.0.0.1 2181
Imok
查看连接到服务器的所有客户端的会话信息
[root@SIP1 bin]# echo cons|nc 127.0.0.1 2181
/127.0.0.1:50163[0](queued=0,recved=1,sent=0)
/127.0.0.1:43284[1](queued=0,recved=766,sent=766,sid=0x2574bf6ec26001f,lop=PING,est=1474863283838,to=30000,lcxid=0x0,lzxid=0x20000013d,lresp=1474870940904,llat=1,minlat=0,avglat=1,maxlat=50)
查看服务器相关配置信息
[root@SIP1 bin]# echo conf | nc 127.0.0.1 2181
clientPort=2181
dataDir=/data/zookeeper/version-2
dataLogDir=/data/zookeeper/version-2
tickTime=3000
maxClientCnxns=10
minSessionTimeout=6000
maxSessionTimeout=60000
serverId=2
initLimit=10
syncLimit=5
electionAlg=3
electionPort=3989
quorumPort=2989
peerType=0
列出所有连接到服务器的客户端的完全的连接 /会话的详细信息
[root@SIP1 bin]# echo cons | nc 127.0.0.1 2181
/127.0.0.1:50270[0](queued=0,recved=1,sent=0)
/127.0.0.1:43284[1](queued=0,recved=777,sent=777,sid=0x2574bf6ec26001f,lop=PING,est=1474863283838,to=30000,lcxid=0x0,lzxid=0x20000013d,lresp=1474871051004,llat=2,minlat=0,avglat=1,maxlat=50)