ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程,ZooKeeper通过其简单的架构和API解决了这个问题。 它是Hadoop和Hbase的重要组件,同时还能使用Java和C的接口。
ZooKeeper典型的应用程序:Apache Hadoop、Apache HBase、Apache Solr1. 下载ZoopKeeper
使用的版本是 zookeeper-3.4.11.tar.gz
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端口监听情况```