ZooKeeper集群搭建 windows篇

来源:互联网 发布:windows swift 编译器 编辑:程序博客网 时间:2024/05/19 01:11

ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

单机版

1.下载ZooKeeper,选择你需要的版本

http://apache.fayea.com/zookeeper/


我选择的是zookeeper-3.4.9稳定版

2. 解压到你的文件 我存放的是D:\API\zookeeper-3.4.9

3.创建一个zoo.cfg,我这里是使用拷贝zoo_sample.cfg,然后直接重命名。解释下各个属性:

tickTime 每次心跳检测的间隔时间,单位是毫秒
initLimit 集群中follower服务器和Leader服务器之间初始连接时能容忍的最大心跳次数,超过这个时间连接失败。如果超过这个时间大多数follower没有完成同步,Leader宣布放弃领导位置,进行一次新的选举。默认为10,如果zk集群数量庞大可以适当调大这个参数。
syncLimit 集群中follower服务器和Leader服务器之间请求和应答之间能容忍的最大心跳次数,超过这个时间此follower将被丢弃,所有关联到这个跟随者的客户端将连接到另外一个跟随者。
dataDir 存放数据的目录
clientPort 客户端连接使用的端口号
maxClientCnxns 允许的最大连接数
autopurge.snapRetainCount 保存在数据目录的快照数
autopurge.purgeInterva 清除任务的执行间隔,单位是小时

配置自定义的配置

tickTime=2000initLimit=10syncLimit=5clientPort=2181dataDir=D:/data/zookeeper

4.启动zookeeper。

双击bin下面的zkServer.cmd

5.查看zookeeper状态,需要用到netcat
下载地址:https://eternallybored.org/misc/netcat/

解压出来,然后命令行到同一个目录,敲击命令:

echo ruok | nc localhost 2181

可以看到有一个imok应答,当然你也可以使用conf命令查看配置

6.连接到zookeeper

打开一个新的命令行,切换到zookeeper的bin目录下面,敲入命令:

zkCli -server localhost:2181

然后你就可以自己创建zNode了,以上是单机版的安装配置步骤。


伪集群模式

1.分别拷贝三个zookeeper副本,分别命名为zk1 zk2 zk3,目录结构如下:

2.分别配置zk1、zk2、zk3的zoo.cfg

zk1:
tickTime=2000initLimit=10syncLimit=5clientPort=2181dataDir=D:/data/zk_cluster/zk_data/zk1server.1=localhost:2881:3887server.2=localhost:2882:3888server.3=localhost:2883:3889

zk2:
tickTime=2000initLimit=10syncLimit=5clientPort=2182dataDir=D:/data/zk_cluster/zk_data/zk2server.1=localhost:2881:3887server.2=localhost:2882:3888server.3=localhost:2883:3889
zk3:
tickTime=2000initLimit=10syncLimit=5clientPort=2183dataDir=D:/data/zk_cluster/zk_data/zk3server.1=localhost:2881:3887server.2=localhost:2882:3888server.3=localhost:2883:3889

注意事项
  1. 由于部署在同一台机器上,clientPort不能重复,建议Server_A的clientPort=2181,Server_B的clientPort=2182,依次递增。 
  2. server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 ZooKeeper实例通信端口号不能一样,所以要给它们分配不同的端口号。 
  3. 集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面只有一个数据就是 A 的值,ZooKeeper启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。
3.我们创建myid文件,每个文件里面只放对象server的id,但注意的是这个文件一定要是无BOM的



4.分别启动各个实例

双击

前几台实例出现实例异常是正常情况,全部启动好了就消失了


5.查看各个实例


6.伪集群模式搭建完成,真正的集群模式更简单,端口号完全可以完全一样

原创粉丝点击