环境依赖:
①使用centos7.5
②使用如下三台服务器
192.168.43.128,192.168.43.129和192.168.43.130
1、Zookeeper安装
Zookeeper链接:http://zookeeper.apache.org/
$ tar zxvf zookeeper-3.4.12.tar.gz -C /opt
$ cd /opt && mv zookeeper-3.4.12 zookeeper
$ cd zookeeper
$ cp conf/zoo_sample.cfg conf/zoo.cfg
#把zookeeper加入到环境变量
export ZK_HOME=/opt/zookeeper-3.4.12
export PATH=$PATH:$ZK_HOME/bin
2、Zookeeper集群配置
2.1、Zookeeper配置文件修改
#修改配置文件zoo.cfg,如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
server.128= 192.168.43.128:2888:3888
server.129= 192.168.43.129:2888:3888
server.130= 192.168.43.130:2888:3888
#创建dataDir指定的目录
$ mkdir -p /opt/zookeeper
#其余zookeeper节点也同样执行。
2.2、配置参数说明
①tickTime:zookeeper服务器之间,或客户端与服务器之间维持心跳的时间间隔
②initLimit:配置zookeeper接受follower 服务器初始化连接时最长能忍受多少个心跳时间间隔数。
当超过N个心跳的时间长度后 zk服务器仍未收到客户端的返回信息,那么表明这个客户端连接失败。
③syncLimit:标识leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度。
④dataDir:zk保存数据的目录,默认情况下zk将写数据的日志文件也保存在这个目录里;
⑤clientPort:客户端连接Zookeeper服务器的端口;
⑥server.A=B:C:D参数解释
A:数字,表示这个是第几号服务器,最好设置成于机器名具有相关性
B:服务器的IP地址
C:端口,用于集群成员的信息交换,表示这个服务器与leader服务器交换信息的端口
D:在leader挂掉时专门用来进行选举leader所用的端口。
2.3、创建ServerID标识
集群模式下还需要创建一个myid文件,这个文件需要放在zoo.cfg文件中配置的dataDir目录下。文件里面的数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A)。
#在192.168.43.128服务器上面创建myid文件并设置值为128(必须与zoo.cfg文件里面的server.128保持一致)
$ echo 128 > /opt/zookeeper/myid
#在192.168.43.129服务器上
$ echo 129 > /opt/zookeeper/myid
#在192.168.43.130服务器上
$ echo 130 > /opt/zookeeper/myid
到此,相关配置已完成
3、Zookeeper集群启动
1、启动节点:
$ zkServer.sh start
2、查看节点状态
$ zkServer.sh status
ZooKeeper JMX enabled by default Using config: /opt/develop/zookeeper-3.4.12/bin/../conf/zoo.cfg Mode: follower
#从上面可以看出,该节点的状态是follow模式。
注意:报错排查
$ zkServer.sh status ZooKeeper JMX enabled by default Using config: /opt/zookeeper-3.4.12/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
zk节点启动失败可能原因:zoo.cfg配置文件有误、防火墙禁止了相关端口(2888,3888)。
3、Zookeeper集群连接
Zookeeper集群搭建完毕之后,可以通过客户端脚本连接到zookeeper集群上面。
$ zkCli.sh -server 192.168.43.129:2181
执行成功后会提示
[zk: 192.168.43.129:2181(CONNECTED) 0]