ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程,ZooKeeper通过其简单的架构和API解决了这个问题。 它是Hadoop和Hbase的重要组件,同时还能使用Java和C的接口。
ZooKeeper典型的应用程序:Apache Hadoop、Apache HBase、Apache Solr

1. 下载ZoopKeeper

使用的版本是 zookeeper-3.4.11.tar.gz
官网:https://zookeeper.apache.org
清华大学镜像节点:https://mirrors.tuna.tsinghua...

windows下载解压就可以了
Linux安装:

$ wget http://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz # 下载zookeeper软件压缩包
$ tar -zxvf zookeeper-3.4.11.tar.gz # 解压zookper压缩包

2. 修改配置文件

复制 confzoo_sample.cfg 文件,并改名为 zoo.cfg(zookeeper默认使用zoo.cfg配置文件)。主要修改 dataDir、 dataLogDir 两个参数

# The number of milliseconds of each tick
# 每次心跳的间隔时间,单位是毫秒
# ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。
tickTime=2000

# The number of ticks that the initial synchronization phase can take
# Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在 initLimit 时间内完成这个工作。
initLimit=10

# The number of ticks that can pass between sending a request and getting an acknowledgement
# 在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态
syncLimit=5

# the directory where the snapshot is stored. do not use /tmp for storage, /tmp here is just example sakes. 
# 存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。
dataDir=D:/dubbo/zookeeper/data

# 事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能。
dataLogDir=D:/dubbo/zookeeper/dataLog  

# the port at which the clients will connect 
# 客户端连接server的端口,即对外服务端口,一般设置为2181吧。
clientPort=2181


# the maximum number of client connections.
# increase this if you need to handle more clients
# 单个客户端与单台服务器之间的连接数的限制,是ip级别的,默认是60,如果设置为0,那么表明不作任何限制。
#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

3. 启动ZooKeeper服务


```
# windows:
./bin/zkServer.cmd  # 启动ZooKeeper服务
./bin/zkCli.cmd 127.0.0.1:2181 # 测试连接是否正常
./bin/zkCli.sh # 打开ZooKeeper命令行界面(CLI),之后可以对 znode 节点进行操作

netstat -aon|findstr "2181" # 查看ZooKeeper端口监听情况



# Linux:
$ ./bin/zkServer.sh start # 启动ZooKeeper服务器,会有一个QuorumPeerMain进程
$ ./bin/zkServer.sh stop  # 停止zookeeper服务器
$ ./bin/zkCli.sh 127.0.0.1:2181 # 测试连接是否正常
$ ./bin/zkCli.sh # 打开ZooKeeper命令行界面(CLI),之后可以对 znode 节点进行操作

$ netstat -anp | grep 2181 # 查看ZooKeeper端口监听情况
```

Developer
1.4k 声望123 粉丝

只要还在学习,人生就有无限的希望...