zookeeper提供了很多方便的功能,方便我们查看服务器的状态,增加,修改,删除数据(入口是zkServer.sh和zkCli.sh)。

还提供了一系列四字命令,方便我们跟服务器进行各种交互,来确认服务器当前的工作情况(这也是服务器监控告警的基础)。

本文所讲的zkCli.sh和zkServer.sh均位于以下目录中:

/usr/local/zookeeper-3.3.6/bin

3.1、zkServer.sh

提供的主要功能如下:

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}

3.2、zkCli.sh

连接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]

3.3、常用命令

键入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]

3.4、四字命令

传递四个字母的字符串给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)


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐