ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

1
2
3
4
5
6
# 解压至指定目录
tar -zxvf zookeeper-x.x.x.tar.gz -C /usr/local/
# 进入配置目录
cd zookeeper-3.4.8/conf
# 根据示例配置文件,配置自己的配置
cp zoo_sample.cfg zoo.cfg
  • 示例配置内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
  • 配置说明

tickTime: Zookeeper服务器与客服端服务器的心跳检测间隔时间,单位(毫秒)
initLimit: 集群中follower服务与leader服务器,初始转接最多心跳数。
syncLimit: 集群中follower服务与leader服务器,请求与应答最多心跳数
dataDir: Zookeeper数据文件存储目录。无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。
clientPort: Zookeeper服务器监听端口,

  • 相关命令
1
2
3
4
5
6
7
8
# 启动ZK服务
./zkServer.sh start
# 停止ZK服务
./zkServer.sh stop
# 重启ZK服务
./zkServer.sh restart
# 查看ZK服务状态
./zkServer.sh status
  • 客户端进行连接
1
2
# ./zkCli.sh -server 主机:端口
./zkCli.sh -server localhost:2181