下载
推荐下载最新稳定版本:Zookeeper-3.4.11
下载地址:http://www-eu.apache.org/dist/zookeeper/
Zookeeper三种工作方式
(1)单点模式:在单台机器上部署,存在单点故障模式,适合开发和测试环境部署。
(2)集群模式:在多台机器上部署,适合线上正式环境部署。
(3)伪集群部署:在单台环境上部署多个实例,仍然存在单点故障问题,适合开发和测试集群环境。
Zookeeper脚本介绍:
zkServer.sh : ZooKeeper服务器的启动、停止和重启脚本;
zkCli.sh : ZooKeeper的简易客户端;
zkEnv.sh : 设置ZooKeeper的环境变量;
zkCleanup.sh : 清理ZooKeeper历史数据,包括事务日志文件和快照数据文件。
安装需知
(1)需要Jdk,可以使用本系统的包管理系统,或者下载Jdk,例如:http://java.sun.com/javase/downloads/index.jsp
(2)设置堆内存大小,避免发生内存交换。内存大小可以通过反复测试确定,保守情况下,可以考虑本机内存大小的75%,例如4G机器使用3G作为堆内存大小
(3)防火墙开放所需要的所有端口
(4)安装Zookeeper服务安装包,可以通过如下页面下载:
http://www-eu.apache.org/dist/zookeeper/
(5)创建配置文件,可以找到zookeeper-3.4.11/conf/zoo_sample.cfg,复制为zoo.cfg,进行文件配置.
(6)检查Zookeeper启动,使用命令:
zookeeper/bin/zkServer.sh status
(7)连接Zookeeper,使用命令:
bin/zkCli.sh -server 127.0.0.1:2181
连接集群时,使用逗号分隔host:port
(8)配置集群时建议使用奇数个服务器,因为只有超过一半以上服务正常时,集群保持可用,所以至少需要奇数个服务器。
(9)启动Zokeeper,使用命令:
bin/zkServer.sh start
配置介绍
配置文件模板如下:
tickTime=2000
dataDir=/opt/zookeeper1
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888
tickTime:Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:Zookeeper 保存数据的目录,记录事物、读写日志,在集群情况下,集群标识文件myid也放在该目录下。
clientPort:Zookeeper客户端连接Zookeeper服务器的端口。
initLimit:客户端初始化连接Zookeeper服务器最长能忍受的多少个心跳时间单元。
syncLimit:Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间单元。
server.1=192.168.211.1:2888:3888:1是指的服务器标识,也就是dataDir下的myid文件中的标识。192.168.211.1是指集群中该服务器的地址。2888是指Zookeeper各个对等服务间通信的端口。3888是指Zookeeper领导者选举的端口。
单机部署
在conf/zoo.cfg文件下,输入如下配置:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
最后验证。集群部署
在conf/zoo.cfg文件下,输入如下配置:
tickTime=2000
dataDir=/opt/zookeeper1
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888
在/opt/zookeeper1文件夹下,创建myid文件,在192.168.211.1机器中配置如下:
1
伪集群部署
伪装集群与集群最大的区别在于,伪集群host地址相同,后面两个Port不同,例如:
tickTime=2000
dataDir=/opt/zookeeper1
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.211.1:2881:3882
server.2=192.168.211.1:2883:3884
参考:
[1] https://zookeeper.apache.org/
[2] https://blog.csdn.net/u014394255/article/details/53980656