[TOC]
1 默认配置文件示例
# 毫秒数,指定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集群状态信息。
[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]#
或者:
[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
[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
重置所有客户端连接统计信息
[root@h1 zookeeper]# echo crst | nc 192.168.161.128 2181
Connection stats reset.
- conf
获取基本配置信息
[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
客户端连接的详细信息
[root@h1 zookeeper]# echo cons | nc 192.168.161.128 2181
/192.168.161.128:53257[0](queued=0,recved=1,sent=0)
- envi
环境信息
[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)
[root@h1 zookeeper]# echo ruok | nc 192.168.161.128 2181
imok[root@h1 zookeeper]#
- srvr
和stat命令类似,但是输出不包括客户端信息。
[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
重置服务器端统计信息
[root@h1 zookeeper]# echo srst | nc 192.168.161.128 2181
Server stats reset.
[root@h1 zookeeper]#
- wchs
watcher信息
[root@h1 zookeeper]# echo wchs | nc 192.168.161.128 2181
0 connections watching 0 paths
Total watches:0
- wchc
以会话分组,显示watcher信息
echo wchc | nc 192.168.161.128 2181
- wchp
以节点分组,显示watcher信息
echo wchp | nc 192.168.161.128 2181
- dump
输出会话信息
[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):