Zookeeper教程—单机和集群安装

下载

推荐下载最新稳定版本: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章