首页 > 其他分享 >ZooKeeper集群版本升级

ZooKeeper集群版本升级

时间:2023-10-18 17:26:18浏览次数:36  
标签:zookeeper ## ZooKeeper oldVersionBak 版本升级 集群 usr local 节点

 

ZooKeeper集群版本升级

 

环境描述:

3节点的集群,当前版本为3.8.1,计划将所有节点版本升级到3.8.3。

由于过半机制,即存活的节点数量>(非>=)所有节点数量的一半,则整个集群可以正常对外提供服务。

举个例子,3个节点,最少存活2>(3/2=1.5)个节点,即允许有一个节点宕机下依旧能够对外服务。

                  4个节点,最少存活3>(4/2=2)个节点,即允许有一个节点宕机下依旧能够对外服务。(不推荐偶数个节点的zk集群)

                  5个节点,最少存活3>(5/2=2.5)个节点,即允许有两个节点宕机下依旧能够对外服务。

基于这个机制下,有两种升级方案:

1.过半机制下,可以先对所有的flower节点进行关闭升级在启动,最后再对leader节点做升级。

只在重新选举leader期间会短暂无法提供服务。

2.通过加踢节点,先加入新版本的节点到集群中去之后,将旧版本的节点踢出集群。

就是费机器,需要额外的3台机器中转。

加踢节点方式可以参考我此篇:https://www.cnblogs.com/PiscesCanon/p/17325739.html

 

这里使用第一种方式做升级。

先拿其中一台角色为flower的节点做升级。

##确认角色信息
zkServer.sh status

##关闭zk服务
systemctl stop zookeeper
systemctl status zookeeper

##移动zk软件目录
cd /usr/local/
mv zookeeper/ zookeeper.oldVersion

##拷贝备份事务日志文件和快照日志文件
cp -r /zookeeper/data  /zookeeper/data.oldVersionBak
cp -r /zookeeper/logs  /zookeeper/logs.oldVersionBak

##解压新版本到软件目录并重命名
tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz -C /usr/local/
mv /usr/local/apache-zookeeper-3.8.3-bin/ /usr/local/zookeeper

##修改用户和组权限
chown -R root:root /usr/local/zookeeper

##拷贝旧软件目录中的配置(包括自定义配置文件)到新软件目录中
cp /usr/local/zookeeper.oldVersion/conf/{java.env,zoo.cfg,zoo.cfg.dynamic.*} /usr/local/zookeeper/conf/


##启动zk服务并确认版本信息
systemctl start zookeeper
systemctl status zookeeper
zkServer.sh version


##zkCli.sh进交互模式查看是否可以正常看到数据
zkCli.sh

 

之后,在对其他flower节点重复上述复制做升级,leader一定是留到最后做。

 

观察一段时间后没有问题后,看需求可以删除或者转移走目录zookeeper.oldVersion,data.oldVersionBak,logs.oldVersionBak

https://www.cnblogs.com/PiscesCanon/p/17772874.html

rm -fr /zookeeper/data.oldVersionBak/
rm -fr /zookeeper/logs.oldVersionBak/
rm -fr /usr/local/zookeeper.oldVersion/

 

 

至此。

防偷防爬

标签:zookeeper,##,ZooKeeper,oldVersionBak,版本升级,集群,usr,local,节点
From: https://www.cnblogs.com/PiscesCanon/p/17772874.html

相关文章

  • kubeadm 加入work 节点集群时报 http://localhost:10248/healthz处理方法
    现象:[kubelet-check]TheHTTPcallequalto'curl-sSLhttp://localhost:10248/healthz'failedwitherror:Get"http://localhost:10248/healthz":dialtcp127.0.0.1:10248:connect:connectionrefused.[kubelet-check]Itseemslikethekube......
  • Base虚拟机克隆集群节点,并固定IP与免密互通
    克隆Base虚拟机先把Base关机,然后右键-管理-克隆选择完整克隆克隆名字这里叫node1重复步骤,克隆node2/node3为了分类,创建了一个大数据集群文件夹以下命令全是root权限执行配置固定IP#修改主机名hostnamectlset-hostnamenode1#修改IPvim/etc/sysconfig/ne......
  • Centos 系统linux内核版本升级
     查看当前内核版本[root@k8s-master01~]#uname-r3.10.0-1160.el7.x86_64版本号中各个数字分开详细说明:3:主版本号10:次版本号0:修订号1160:发行版本的补丁版本el7:CentOS7内核X86_64:64位操作系统升级过程内核版本下载地址:https://elrepo.org/linux/kernel/e......
  • 搭建redis分片集群
    搭建redis分片集群第一章:测试环境搭建1.1、版本信息:操作系统:CentOS-7-x86_64-Minimal-2009.isoredis:6.0.81.2、地址规划与结构图ip地址端口描述192.168.118.20020300master1192.168.118.20020301slave2。从于192.168.118.201的master192.168.118.20120300master2192.168.118.20120......
  • redis集群的简单应用
    1、创建集群#创建redis示例dockerrun-d--nameredis-node-1--nethost--privileged=true-v/data/redis/share/redis-node-1:/dataredis:6.0.8--cluster-enabledyes--appendonlyyes--port6381dockerrun-d--nameredis-node-2--nethost--privileged=tru......
  • kubernetes集群中pod访问外网丢包严重问题排查:mtu值设置不对
    kubernetes集群中pod访问外网丢包严重问题排查:mtu值设置不对问题描述和初步判断k8s中部署的数据中台调用指云(open.imzhiyun.com)的sdk接口,调用了23次,成功了3次,其余20次都失败。我这边通过在宿主机上进行tcpdump抓包抓包命令:1.查出调用sdk的容器名称2.查出该容器所在宿主机......
  • 轻松掌握组件启动之Redis集群扩展秘籍:轻松扩容与缩容,释放高性能潜能
    扩展集群操作扩容在我们原始的集群基础上,我们决定增加一台主节点(8007)和一台从节点(8008),这样新增的节点将会在下图中以虚线框的形式显示在集群中。1:首先,在/usr/local/redis-cluster目录下创建两个文件夹,分别命名为8007和8008。接下来,将8001文件夹下的redis.conf文......
  • hadoop集群 大数据项目实战_电信用户行为分析_day02
    集群配置好后,运行一个小例子,统计单词1.hdfsdfs-put将本地系统的文件或文件夹复制到HDFS上2.hdfsdfs-ls/output  将所有的文件显示出来3.hdfsdfs-cat/output/ 将所有的文件读取出来 下载part-r-000000安装Redis1.下载Rediswgethttps://download.redis.i......
  • 轻松掌握组件启动之Redis单机、主从、哨兵、集群配置
    单机配置启动Redis安装下载地址:http://redis.io/download安装步骤:1:安装gcc编译器:yuminstallgcc2:将下载好的redis‐5.0.3.tar.gz文件放置在/usr/local文件夹下,并解压redis‐5.0.3.tar.gz文件wgethttp://download.redis.io/releases/redis‐5.0.3.tar.gztarxzfredis......
  • 轻松掌握组件启动之Redis集群扩展秘籍:轻松扩容与缩容,释放高性能潜能
    扩展集群操作扩容在我们原始的集群基础上,我们决定增加一台主节点(8007)和一台从节点(8008),这样新增的节点将会在下图中以虚线框的形式显示在集群中。1:首先,在/usr/local/redis-cluster目录下创建两个文件夹,分别命名为8007和8008。接下来,将8001文件夹下的redis.conf......