zookeeper集群搭建

zookeeper集群搭建


一、环境准备

CentOS8、JDK11、zookeeper-3.7.1
关闭防火墙
zookeeper官网地址:https://zookeeper.apache.org/

[root@localhost ~]# systemctl stop firewalld    //停止firewalld防火墙
[root@localhost ~]# systemctl disable firewalld   //disable防火墙,让它开机不自启
[root@localhost ~]# systemctl status firewalld    //查看firewalld是否已经关闭(active(running))显示防火墙处于激活状态(inactive(dead))防火墙进程处于未激活状态

二、下载zookeeper

1.访问zookeeper官方网站 zookeeper官网
2.找到快速开始中的 Dewonload选择Apache ZooKeeper 3.7.1(asc, sha512)进行下载

注意要下载3.7.1-bin.tar.gz下载,3.7.1.tar.gz需要编译才能启动在这里插入图片描述
在这里插入图片描述

三、解压zookeeper压缩包

将下载的安装包上传至/data目录

cd /data
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz

四、创建数据文件存储路径(集群节点全部配置)

4.1.创建路径
cd/data/zookeeper  #进入zookeeper解压根路径
mkdir data #创建存放数据的目录
4.2.创建myid文件
cd /data/zookeeper/data
touch myid
echo 1 > myid

1、myid文件内的数字必须与zoo.cfg中集群配置server.[value]=192.168.109.143:2888:3888的value一致
2、集群中其他几台机器配置myid按照各自的IP对应的server.[value]=192.168.109.143:2888:3888的value配置保持一致
3、此处的值与集群节点之间选主有关系值越大越有可能成为leader

五、配置zoo.cfg文件(集群节点全部配置)

zoo.cfg中集群key中server.[value]=192.168.109.143:2888:3888的value必须与步骤四4.2中创建的myid文件的内容(数字)一致

cd /data/zookeeper/conf
cp ./zoo_sample.cfg ./zoo.cfg  #复制样例配置文件  命名为zoo.cfg
vim ./zoo.cfg
# leader和follower之间心跳检测时间
tickTime=2000
# 初始化连接次数是10次,和第一个配置连在一起意思就是10*2000 20秒之内还没连接成功,说明follower是有故障的
initLimit=10
# leader下发给follower同步数据次数,5次重试机会,超过5次则表示认为follower存在故障
# leader下发给follower同步数据时间结合tickTime=2000*5=10000毫秒
syncLimit=5
# 数据持久化目录,此处的路径就是步骤4.1中创建的
dataDir=/data/apache-zookeeper-3.7.1-bin/data
# 客户端连接zookeeper服务使用的端口号
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
# 端口号3888:若leader挂了之后,此时没有leader,各个follower通过这个端口进行通信进行投票选出新的leader。
# 端口号2888:leader启动2888端口供follower连接,主要用于follower与leader之间进行通信使用。
#autopurge.purgeInterval=1
server.1=192.168.109.140:2888:3888
server.2=192.168.109.141:2888:3888
server.3=192.168.109.142:2888:3888
server.4=192.168.109.143:2888:3888

六、配置环境变量(集群节点全部配置)

vim /etc/profile
JAVA_HOME=/data/jdk-11.0.16.1  #配置jdk解压跟目录
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib
ZOOKEEPER_HOME=/data/apache-zookeeper-3.7.1-bin/
export JAVA_HOME PATH CLASSPATH
export PATH=$PATH:$ZOOKEEPER_HOME/bin #配置zookeeper执行文件路径
source /etc/profile #刷新配置

七、启动zookeeper(集群节点全部启动)

cd /data/zookeeper/bin
./zkServer.sh start ../conf/zoo.cfg  #启动

#集群节点全部启动后查看状态(观察主从节点)
./zkServer.sh status ../conf/zoo.cfg  

如果启动不成功使用如下命令前台阻塞形式启动按照异常情况解决

./bin/zkServer.sh start-foreground

八、客户端测试zookeeper

进入客户端1

cd /data/zookeeper/bin
./zkCli.sh  #进入客户端
create /test1 testvalue1  #创建节点 且插入数据
get /test1 #查看节点数据结果是否为testvalue1

进入客户端2、3…连接集群中其他节点查看信息是否一致

cd /data/zookeeper/bin
./zkCli.sh  #进入客户端
get /test1 #查看结果是否为testvalue1

九、测试zookeeper集群选主

.。。。。。。。

./zkServer.sh start ../conf/zoo.cfg  #启动
./zkServer.sh status ../conf/zoo.cfg  

结论:
1、3个节点的集群,从服务器挂掉,集群正常
2、节点之间选主与myid的值有关
3、3个节点的集群,2个从服务器都挂掉,主服务器也无法运行。因为可运行的机器没有超过集群总数量的半数
4、当集群中的主服务器挂了,集群中的其他服务器会自动进行选举状态,然后产生新得leader
5、当领导者产生后,再次有新服务器加入集群,不会影响到现任领导者

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值