ZooKeeper参数介绍与集群搭建

ZooKeeper安装

1.安装jdk

将JDK1.8文件上传到Linux操作系统中/home/文件目录下。
(1)解压文件,命令:tar -xvf jdk-8u291-linux-x64.tar.gz
(2)配置环境变量、编辑环境变量配置文件,命令:vim /etc/profile
在内容最后添加下面三行:

export JAVA_HOME=/home/jdk1.8.0_291
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

在这里插入图片描述
(3)使环境变量生效,命令:source /etc/profile
在这里插入图片描述

2.安装zookeeper

将文件apache-zookeeper-3.6.3-bin.tar.gz上传到Linux操作系统中/home/文件目录下。
(1)解压文件,命令:tar -xvf apache-zookeeper-3.6.3-bin.tar.gz
(2)在zk根目录下创建文件夹data/log 命令:mkdir data log
在这里插入图片描述
(3)复制配置文件并且修改名称,命令:cp zoo_sample.cfg zoo.cfg

修改配置文件,命令:vim zoo.cfg
dataDir=/home/apache-zookeeper-3.6.3-bin/data
dataLogDir=/home/apache-zookeeper-3.6.3-bin/log
在这里插入图片描述
(4)zk启动关闭命令
sh zkServer.sh start 或者 ./zkServer.sh start
sh zkServer.sh stop
sh zkServer.sh status
在这里插入图片描述

ZooKeeper配置文件参数介绍

zookeeper的默认配置文件为zookeeper/conf/zoo_sample.cfg,需要将其修改为zoo.cfg。其中各配置项的含义,解释如下:

1.tickTime:Client-Server通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000

2.initLimit:Leader-Follower初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=5

3.syncLimit:Leader-Follower同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=2

4.dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/home/michael/opt/zookeeper/data

5.clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181

6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.A=B:C:D
其中,A是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
B是这个服务器的ip地址;
C是这个服务器与集群中的Leader服务器交换信息的端口
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。例如:
server.1=192.168.64.3:2888:3888
server.2=192.168.64.4:2888:3888
server.3=192.168.64.5:2888:3888

Zookeeper集群搭建

ZK为什么设置为奇数个?
zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2 -> 0; 3 -> 1; 4 - >1; 5 -> 2; 6 -> 2会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,即偶数台和奇数台容灾效果相同,所以没有必要搭建偶数台。

开始搭建集群
(1)准备文件夹
在zookeeper根目录中创建新的文件夹zkCluster,在zkCluster里面创建zk1/zk2/zk3文件夹在这里插入图片描述
在每个文件夹里创建data/log文件夹,命令:
mkdir {zk1,zk2,zk3}/{data,log}
在这里插入图片描述
(2)添加myid文件
分别在zk1/zk2/zk3中的data文件夹中创建新的文件myid,其中的内容依次为1/2/3,与zk节点号对应。
在这里插入图片描述
编辑myid文件,定义编号

在这里插入图片描述
(3)将zoo_sample.cfg复制为zoo1.cfg
在这里插入图片描述
(4)修改zoo1.cfg配置文件
在这里插入图片描述
配置完成后将zoo1.cfg复制两份,然后修改对应的文件夹目录和不同的端口(如果在同一台机器上搭建集群,clientPort必须配置不同的端口号,并且server.1,server.2,server.3的通信端口和选举端口必须配置不同端口号)。
(5)通过下面的命令启动zk集群
sh zkServer.sh start zoo1.cfg
sh zkServer.sh start zoo2.cfg
sh zkServer.sh start zoo3.cfg
然后查看状态
sh zkServer.sh status zoo1.cfg
sh zkServer.sh status zoo2.cfg
sh zkServer.sh status zoo3.cfg
在这里插入图片描述
在这里插入图片描述

Zookeeper的选举机制

  1. 超半数同意,即选举成功
  2. 最大值优先
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值