ZooKeeper(一):安装部署集群搭建及基本配置详解

安装部署

首先当然需要有java环境啦,java环境搭建具体可参考Linux常用便利工具 虚拟机安装jdk1.8 无需配置环境变量这一篇,然后我们开始搭建zookeeper吧。从zookeeper官网(https://zookeeper.apache.org/releases.html#download)中选择合适的releases版本下载,这里以3.4.12.为例
ZooKeeper(一):安装部署集群搭建及基本配置详解_第1张图片
放到虚拟机中解压(zookeeper]# tar -zvxf zookeeper-3.4.12)
在这里插入图片描述
单机

进入conf文件夹,将zoo_sample.cfg复制一份命名为zoo.cfg(cp zoo_sample.cfg zoo.cfg)
ZooKeeper(一):安装部署集群搭建及基本配置详解_第2张图片
修改zoo.cfg,基本上改一下dataDir的地址,其余用默认值便可
ZooKeeper(一):安装部署集群搭建及基本配置详解_第3张图片
进入/root/zookeeper/zookeeper-3.4.12/bin目录,通过./zkServer.sh start启动zookeeper
在这里插入图片描述
通过./zkServer.sh status查看zookeeper启动状态,目前是状态单点的
在这里插入图片描述
后续就可以通过./zkCli.sh来查看节点信息啦
ZooKeeper(一):安装部署集群搭建及基本配置详解_第4张图片
伪集群

Zookeeper使用的是一致性协议,所以建议每个群组应该包含奇数个节点(比如3个、5个等),因为只有当群组里的大多数节点处于可用状态,zookeeper才能处理外部请求。这里以3个为例,我们先创建一个目录用于放zookeeper集群(mkdir zookeeperservers)
在这里插入图片描述
再将解压的zookeeper-3.4.12复制到该目录下作为server1,(cp -r zookeeper-3.4.12 ./zookeeperservers/server1)
在这里插入图片描述
进入到server1下的conf中,修改zoo.cfg,主要修改dataDir位置,clientPort端口以及新增server配置
ZooKeeper(一):安装部署集群搭建及基本配置详解_第5张图片
其中新增的server.后面的数值即为ServerID,与每台server下的myid相对应,所以我们去data目录下创建myid
在这里插入图片描述
并写入ServerID即1
在这里插入图片描述
第一个server就配置完成啦,接下去我们将server1复制到server2和server3中
在这里插入图片描述
并分别对server2和server3中的配置做修改,此时只要改dataDir和clientPort就可以
Server2:
ZooKeeper(一):安装部署集群搭建及基本配置详解_第6张图片
Server3:
ZooKeeper(一):安装部署集群搭建及基本配置详解_第7张图片
并分别对server2和server3 data的myid做修改,
Server2:
在这里插入图片描述
Server3:
在这里插入图片描述
到此,伪集群就搭建完啦,接下来我们分别启动三个server看一下吧:
ZooKeeper(一):安装部署集群搭建及基本配置详解_第8张图片
三台都启动成功啦,来看一下它们的状态吧
Server1:
在这里插入图片描述
Serverr2:
在这里插入图片描述
Server3:
在这里插入图片描述
从这里可以看出中间的Server2是主节点,server1和server3是从节点

基本配置详解

tickTime:
配置zookeeper中最小时间单元长度,单位毫秒。很多运行时的时间间隔都是用tickTime倍数表示,如zookeeper中会话最小超时时间默认2* tickTime。

initLimit:
配置leader等待follower启动,并完成数据同步的时间,默认值10,表示10倍tickTime的时间。通常使用默认值即可,随着zookeeper集群管理数据量增大,follower启动并同步leader上数据的时间也会变长,此时可适当调大该参数值。

syncLimit:
用于配置leader和follower之间心跳检测的最大时间延时时间,默认5,表示5倍tickTime的时间。通常使用默认值即可,随着zookeeper集群的网络质量降低,可适当调大该参数。

dataDir:
配置zookeeper存储快照文件的目录。

clientPort:
当前zookeeper服务器对外的服务端口

server.id=host:port:port
该参数在单机模式下不可配置,用于配置组成zookeeper集群的机器列表。其中id为ServerID,与每台zookeeper服务器myid中的数值一致;host为当前zookeeper服务器机器名或ip地址;第一个port用于指定follower与leader进行通信和数据同步所使用的tcp端口;第二个port指定leader选举中投票通信的tcp端口。
Zookeeper启动时会根据myid中配置的ServerID来确定自己是那台服务器,并使用配置的对应端口启动,如果在一台服务器上部署多个zookeeper构成伪集群的话,所有端口都要配成不同的哦。

参考:《从Paxos到ZooKeeper》

你可能感兴趣的:(ZooKeeper)