一、官方地址
二、Zookeeper下载安装
下载地址:http://apache.claz.org/zookeeper/zookeeper-3.4.9/
下载成功后,执行命令,完成解压缩
tar -xvf zookeeper-3.4.9.tar.gz
三、Zookeeper配置
Zookeeper推荐使用集群模式,由于服务器有限,在这里采用伪集群模式,即在同一台服务器上,启动两个或多个Zookeeper进程实例。
第一台Zookeeper实例配置
首先配置第一个Zookeeper实例,进入zookeeper下conf目录,配置zoo.cfg文件。配置信息如下:
# 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=/home/yqshi/kafka/zookeeper-3.4.9/data/data
dataLogDir=/home/yqshi/kafka/zookeeper-3.4.9/data/log
# 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
server.1=172.18.55.21:2888:3888
server.2=172.18.55.21:2889:3889
参数说明:
- tickTime:zookeeper中使用的基本时间单位, 毫秒值.
- initLimit:zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长同步等待初始化时间. 此时该参数设置为10, 说明时间限制为10倍tickTime, 即10*2000=20000ms=20s.
- syncLimit:该参数配置Zookeeper集群中leader实例和follower实例之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即10000ms=10s.
- dataDir:数据目录. 可以是任意目录。我设置为/home/yqshi/kafka/zookeeper-3.4.9/data/data,即当前zookeeper安装目录下的/data/data目录。
- dataLogDir:log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置。我设置为/home/yqshi/kafka/zookeeper-3.4.9/data/log,即当前zookeeper安装目录下的/data/log目录。
- clientPort:监听client连接的端口号.在伪集群模式中,各个实例的clientPort必须不同。但在集群模式中,建议相同,均配置为2181。
- server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同,若集群模式,推荐使用相同的port.
在伪集群模式和集群模式中,需要在刚刚设置的dataDir目录下,创建一个myid文件,输入对应唯一标识数。如刚刚设置的Zookeeper为集群中第一台,即设置myid中值为1。该数字必须和zoo.cfg文件中的server.X中的X一一对应.
第二台Zookeeper实例配置
按照同样的方式配置第二台Zookeeper实例。
# 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=/home/yqshi/kafka/zookeeper-3.4.9_2/data/data
dataLogDir=/home/yqshi/kafka/zookeeper-3.4.9_2/data/log
# the port at which the clients will connect
clientPort=2182
# 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
server.1=172.18.55.21:2888:3888
server.2=172.18.55.21:2889:3889
可以看到,我又copy了一份zookeeper的安装目录,为/home/yqshi/kafka/zookeeper-3.4.9_2。
配置clientPort地址,server.1和server.2地址。若集群存在多台zookeeper实例,则继续增加server.x配置。
同样需要配置第二台Zookeeper实例dataDir下的myid。
四、Zookeeper启动
执行 sh bin/zkServer.sh satrt
五、Zookeeper使用
Zookeeper在使用上有以下几个基本命令
- ls 查看结点路径(同linux的ls命令)
- get 获取结点值
- delete 删除结点(当前结点必须为子节点,无后续结点)
- rmr 强制删除结点(当前结点可以为子节点,也可以为根结点,强制删除,不建议使用)
在Zookeeper中的连接客户端中,建议使用curator的客户端。
Zookeeper主要采用了监听者模式,即结点发生变化时,会推送给所有的监听者事件消息。
六、版权声明
转载请注明出处:https://shiyueqi.github.io/2017/04/27/Zookeeper-3.4.9安装配置/
Author: Yueqi Shi
Date: 2017-04-27 09:32:00 AM