zookeeper 安装的三种模式(转)

来源:互联网 发布:mac silverlight下载 编辑:程序博客网 时间:2024/06/05 02:15

zookeeper的安装分为三种模式:单机模式、集群模式和伪集群模式。下面介绍在Centos 7虚拟机上安装配置的过程。

单机模式

首先,从Apache官网下载一个Zookeeper稳定版本,本次教程采用的是zookeeper-3.4.10版本。http://apache.fayea.com/zookeeper/zookeeper-3.4.10/
然后解压zookeeper-3.4.10.tar.gz文件到安装目录下:

tar -zxvf zookeepre-3.4.10.tar.gz

  zookeeper要求Java运行环境,并且需要jdk版本1.6以上。为了以后的操作方便,可以对zookeeper的环境变量进行配置(该步骤可忽略)。方法如下,在/etc/profile文件中加入以下内容:

设置Zookeeper的环境变量
编辑/etc/profile,在文档尾部添加如下内容:

export ZOOKEEPER_HOME=/usr/local/zookeeper3410export PATH=$ZOOKEEPER_HOME/bin;$ZOOKEEPER_HOME/conf

Zookeeper服务器包含在单个jar文件中(本环境下为 zookeeper-3.4.10.jar),安装此服务需要用户自己创建一个配置文件。默认配置文件路径为 zookeeper3410/conf/目录下,文件名为zoo.cfg。进入conf/目录下可以看到一个zoo_sample.cfg文件,可供参考。通过以下代码在conf目录下创建zoo.cfg文件:

vi zoo.cfg

在文件中做如下修改并保存:

tickTime=2000dataDir=/usr/local/zookeeper3410/datadataLogDir=/usr/local/zookeeper3410/dataLogclientPort=2181

在这个文件中,各个语句的含义:

tickTime : 服务器与客户端之间交互的基本时间单元(ms)dataDir : 保存zookeeper数据路径、日志路径等dataLogDir : 保存zookeeper日志路径,当此配置不存在时默认路径与dataDir一致clientPort : 客户端访问zookeeper时经过服务器端时的端口号

使用单机模式时需要注意,在这种配置方式下,如果zookeeper服务器出现故障,zookeeper服务将会停止。


伪集群模式

伪集群模式就是在单机环境下模拟集群的Zookeeper服务。
在zookeeper集群配置文件中,clientPort参数用来设置客户端连接zookeeper服务器的端口。server.1=IP1:2888:3888中,IP1指的是组成Zookeeper服务器的IP地址,2888为组成zookeeper服务器之间的通信端口,3888为用来选举leader的端口。由于伪集群模式中,我们使用的是同一台服务器,也就是说,需要在单台机器上运行多个zookeeper实例,所以我们必须要保证多个zookeeper实例的配置文件的client端口不能冲突。
下面简单介绍一下如何在单台机器上建立伪集群模式。
首先将zookeeper3410拷贝两份,具体操作如下:

cp -r zookeeper3410 zookeeper34101cp -r zookeeper3410 zookeeper34102

然后在zookeeper3410/data/目录下创建文件myid文件并写入“1”,同样在zookeeper34101/data/,目录下创建文件myid并写入“2”,同样在zookeeper34102/data,目录下创建文件myid并写入“3”。然后分别修改各自的zoo.cfg文件,具体如下:

# Server 1# The number of milliseconds of each tick# 服务器与客户端之间交互的基本时间单元(ms)tickTime=2000# The number of ticks that the initial # synchronization phase can take# 此配置表示允许follower连接并同步到leader的初始化时间,它以tickTime的倍数来表示。当超过设置倍数的tickTime时间,则连接失败。initLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgement# Leader服务器与follower服务器之间信息同步允许的最大时间间隔,如果超过次间隔,默认follower服务器与leader服务器之间断开链接syncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.# 保存zookeeper数据,日志路径dataDir=/home/jxwch/server1/datadataLogDir=/home/jxwch/server1/dataLog# the port at which the clients will connect# 客户端与zookeeper相互交互的端口#(注意三个zookeeper的端口要设置成不一样)clientPort=2181#(编号1,2,3要和myid一致)server.1= 127.0.0.1:2888:3888server.2= 127.0.0.1:2889:3889server.3= 127.0.0.1:2890:3890#server.A=B:C:D  其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。# the maximum number of client connections.# increase this if you need to handle more clients# 限制连接到zookeeper服务器客户端的数量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

Zookeeper伪集群模式运行
首先启动zookeeper34110服务器:

cd zookeeper34110/bin./zkServer.sh start

这时候,查看zookeeper3410服务器的状态,会提示下列信息:

./zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper34102/bin/../conf/zoo.cfgError contacting service. It is probably not running.

上述信息先不用管,继续启动其它zookeeper服务器,当zookeeper服务器都启动之后,执行如下命令:

[root@xhp1 zookeeper3410]# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper3410/bin/../conf/zoo.cfgMode: follower[root@xhp1 zookeeper34101]# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper34101/bin/../conf/zoo.cfgMode: leader[root@xhp1 zookeeper34102]# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper34102/bin/../conf/zoo.cfgMode: follower

说明zookeeper3410服务器此时处于follower模式,zookeeper34101服务器此时处于leader模式,zookeeper34102服务器此时处于follower模式。


集群模式

zookeeper最主要的应用场景是集群,下面介绍如何在一个集群上部署一个zookeeper。只要集群上的大多数zookeeper服务启动了,那么总的zookeeper服务便是可用的。另外,最好使用奇数台服务器。如歌zookeeper拥有5台服务器,那么在最多2台服务器出现故障后,整个服务还可以正常使用。
之后的操作和单机模式的安装类似,我们同样需要Java环境,下载最新版的zookeeper并配置相应的环境变量。不同之处在于每台机器上的conf/zoo.cfg配置文件的参数设置不同,用户可以参考下面的配置:

tickTime=2000initLimit=10syncLimit=5dataDir=/home/jxwch/server1/datadataLogDir=/home/jxwch/server1/dataLogclientPort=2181server.1=zoo1:2888:3888server.2=zoo2:2888:3888server.3=zoo3:2888:3888maxClientCnxns=60

在这个配置文件中,新出现的语句的含义:

initLimit : 此配置表示允许follower连接并同步到leader的初始化时间,它以tickTime的倍数来表示。当超过设置倍数的tickTime时间,则连接失败。syncLimit : Leader服务器与follower服务器之间信息同步允许的最大时间间隔,如果超过次间隔,默认follower服务器与leader服务器之间断开链接。maxClientCnxns : 限制连接到zookeeper服务器客户端的数量server.id=host:port:port : 表示了不同的zookeeper服务器的自身标识,作为集群的一部分,每一台服务器应该知道其他服务器的信息。用户可以从“server.id=host:port:port” 中读取到相关信息。在服务器的data(dataDir参数所指定的目录)下创建一个文件名为myid的文件,这个文件的内容只有一行,指定的是自身的id值。比如,服务器“1”应该在myid文件中写入“1”。这个id必须在集群环境中服务器标识中是唯一的,且大小在1255之间。这一样配置中,zoo1代表第一台服务器的IP地址。第一个端口号(port)是从follower连接到leader机器的端口,第二个端口是用来进行leader选举时所用的端口。所以,在集群配置过程中有三个非常重要的端口:clientPort:2181port:2888port:3888

转发至:https://www.cnblogs.com/jxwch/p/6433310.html

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 男主是小倌 小倌二 青罗扇子 反穿之小倌的明星路 暴露小倩 小倩 马小倩 小倩全文 张哲叶小倩 老许小倩 新婚小倩 小倩影视 pans小倩 小倩自我改造日记 小倩改造日记 小倩露暴展览 新婚小倩和徐伯 小倩的自我改造 许伯干小倩在线阅读 我的女友小倩 张哲叶小倩全文目录 粱伯日新婚小倩 小倩遗愿清单 老王赵小倩全文目录 遗愿清单小倩 魏老头和小倩 小倩遗愿清单txt 小倩投食计划 新婚小倩目录 保安许伯小倩 丽江小倩一瞬间手鼓口诀 新婚小倩全文目录 言不由衷小倩 聊斋志异小倩 第75章老许头小倩 露暴女友列车小倩 魏老头大干新婚小倩 被老师弄过之后小倩下载 被卖给五兄弟周小倩 湖南大学校花王小倩 我会想起你丽江小倩 徐伯干新婚邻居小倩