1 默认配置文件示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 毫秒数,指定zookeeper中的最小时间单元大小
# 许多属性都是该属性的N倍
tickTime=2000
# 此处的10,表示tickTime的10倍
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# 用于存储快照的目录
dataDir=/var/zookeeper
# 对外提供的服务端口,供客户端使用
clientPort=2181
# maxClientCnxns=60
#
# autopurge.snapRetainCount=3
# autopurge.purgeInterval=1
server.1=h1:2183:2184
server.2=h2:2183:2184
server.3=h3:2183:2184

2 其他常用配置

  • dataLogDir

默认情况下,zookeeper的事务日志将会和快照文件存储于同一目录下.该属性指定事务日志文件的存放位置。
并且,官方推荐的做法是: 为事务日志准备专用的吞吐量较大的存储设备,同时也将事务日志和快照文件的存储分开了。

  • globalOutstandingLimit (zookeeper.globalOutstandingLimit)

当客户端请求到来的速度大于zookeeper处理请求的速度的时候(比如客户端数量较大时),新的请求会堆积。
太大的堆积会影响服务器的性能或者使zookeeper溢出。
该属性就是设置堆积的请求的最大数量的。默认为1000。

  • preAllocSize (zookeeper.preAllocSize)

事务日志文件预分配的大小.默认为64M。

  • minSessionTimeout

最小超时时间,默认为tickTime的2倍。

  • maxSessionTimeout

最大超时时间,默认为tickTime的20倍。

  • autopurge.snapRetainCount

启用后,将自动清理快照文件和日志文件。该属性指定在清理的时候保留几个快照文件和日志文件。该值的最小值为3.

  • autopurge.purgeInterval

定时清理日志和快照文件的时间间隔。0表示不清理。

  • initLimit

表示Leader等待Flower连接到Leader并和Leader同步数据的时间最大值。当数据量较大时应该适当调大该参数。
默认为10*tickTime。

  • syncLimit

Leader和Follower之间心跳检测的最大时间间隔。
如果超过该值配置的时间间隔没有收到Follower的心跳信号,则Leader认为Follower已经和自己断开连接。

  • forceSync (zookeeper.forceSync)

表示是否实时地将事务日志的内容写入磁盘(立即从缓存直接刷入磁盘)。
可取值为 yes|no

  • skipACL (zookeeper.skipACL)

对于客户端的请求是否跳过授权检测。默认为false。

3 常用四字命令

zookeeper中,一些命令都是4个英文字母组成的,因此,有人称之为zookeeper “四字命令”。

这些四字命令可以通过telnet或者nc来执行以获取zookeeper的一些信息。
以下stat命令的操作使用了两种方法来演示:

  • stat

查询zookeeper集群状态信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@h1 zookeeper]# telnet 192.168.161.128 2181
Trying 192.168.161.128...
Connected to 192.168.161.128.
Escape character is '^]'.
stat
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
/192.168.161.128:53253[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 4
Sent: 3
Connections: 1
Outstanding: 0
Zxid: 0x500000001
Mode: follower
Node count: 18
Connection closed by foreign host.
[root@h1 zookeeper]#

或者:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@h1 zookeeper]# echo stat | nc 192.168.161.128 2181
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
/192.168.161.128:53254[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 5
Sent: 4
Connections: 1
Outstanding: 0
Zxid: 0x500000001
Mode: follower
Node count: 18
[root@h1 zookeeper]#
  • mntr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@h1 zookeeper]# echo mntr | nc 192.168.161.128 2181
zk_version 3.4.9-1757313, built on 08/23/2016 06:50 GMT
zk_avg_latency 0
zk_max_latency 0
zk_min_latency 0
zk_packets_received 2
zk_packets_sent 2
zk_num_alive_connections 1
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count 18
zk_watch_count 0
zk_ephemerals_count 0
zk_approximate_data_size 561
zk_open_file_descriptor_count 32
zk_max_file_descriptor_count 4096
  • crst

重置所有客户端连接统计信息

1
2
[root@h1 zookeeper]# echo crst | nc 192.168.161.128 2181
Connection stats reset.
  • conf

获取基本配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@h1 zookeeper]# echo conf | nc 192.168.161.128 2181
clientPort=2181
dataDir=/var/zookeeper/version-2
dataLogDir=/var/zookeeper/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=1
initLimit=10
syncLimit=5
electionAlg=3
electionPort=2184
quorumPort=2183
peerType=0
[root@h1 zookeeper]#
  • cons

客户端连接的详细信息

1
2
[root@h1 zookeeper]# echo cons | nc 192.168.161.128 2181
/192.168.161.128:53257[0](queued=0,recved=1,sent=0)
  • envi

环境信息

1
2
3
4
5
6
7
8
[root@h1 zookeeper]# echo envi | nc 192.168.161.128 2181
Environment:
zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
host.name=h1
java.version=1.8.0_101
java.vendor=Oracle Corporation
java.home=/soft/jdk1.8.0_101/jre
......
  • ruok

ruok(are you ok)?
查询,zookeeper是否处于工作状态。

一般会返回 imok (I am ok)

1
2
[root@h1 zookeeper]# echo ruok | nc 192.168.161.128 2181
imok[root@h1 zookeeper]#
  • srvr

和stat命令类似,但是输出不包括客户端信息。

1
2
3
4
5
6
7
8
9
10
[root@h1 zookeeper]# echo srvr | nc 192.168.161.128 2181
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Latency min/avg/max: 0/0/0
Received: 13
Sent: 12
Connections: 1
Outstanding: 0
Zxid: 0x500000001
Mode: follower
Node count: 18
  • srst

重置服务器端统计信息

1
2
3
[root@h1 zookeeper]# echo srst | nc 192.168.161.128 2181
Server stats reset.
[root@h1 zookeeper]#
  • wchs

watcher信息

1
2
3
[root@h1 zookeeper]# echo wchs | nc 192.168.161.128 2181
0 connections watching 0 paths
Total watches:0
  • wchc

以会话分组,显示watcher信息

1
echo wchc | nc 192.168.161.128 2181
  • wchp

以节点分组,显示watcher信息

1
echo wchp | nc 192.168.161.128 2181
  • dump

输出会话信息

1
2
3
4
5
[root@h1 zookeeper]# echo dump | nc 192.168.161.128 2181
SessionTracker dump:
org.apache.zookeeper.server.quorum.LearnerSessionTracker@6f523655
ephemeral nodes dump:
Sessions with Ephemerals (0):