Apache-doris-2.0.2原地滚动升级3.1.4方案

Apache-doris-2.0.2原地滚动升级3.1.4方案

文章目录

前置准备

JDK的升级

高版本Doris对JDK的版本有要求

连接器升级

需要检查使用的各类连接器的情况,重点

  1. 低版本的连接器是否可以正常读写高版本Doris
  2. 高版本的连接器是否可以正常读写低版本的Doris

举例 Flink连接器,Doris FE 返回的 schema 信息包含了 is_nullable 字段,之前使用的 Doris Flink Connector 版本较旧,其 org.apache.doris.flink.rest.models.Field 类只定义了 6 个字段:aggregation_typetypenameprecisioncommentscale,缺少 is_nullable 字段。

新版本安装包

  • apache-doris-3.1.4-bin-x64-noavx2.tar.gz

  • jdk-17.0.12.tar.gz

其中apache-doris-3.1.4-bin-x64.tar.gzapache-doris-3.1.4-bin-x64-noavx2.tar.gz为是否支持avx2指令集的安装包。本文档使用apache-doris-3.1.4-bin-x64-noavx2.tar.gz进行升级。

通过命令cat /proc/cpuinfo | grep flags来查看当前CPU所支持的指令集,来确认Drios的安装包版本。主要看是否支持avx2

升级步骤

一、安装新版本Doris

切换到 doris 用户,本文档后续操作均使用 doris 用户。

复制代码
su - doris
解压包
shell 复制代码
tar -zxf /data/install_package/jdk-17.0.12.tar.gz -C /home/doris/software/;
tar -zxf /data/install_package/apache-doris-3.1.4-bin-x64-noavx2.tar.gz -C /home/doris/software/
配置Doris文件

其中priority_networks建议配置成包含集群所有IP的网段/掩码,如相关IP均处于10.98...x.x段,即可配置为10.98.0.0/16

fe.conf

shell 复制代码
vim /home/doris/software/apache-doris-3.1.4-bin-x64-noavx2/fe/conf/fe.conf
# 添加配置(使用ip a命令可获取)
priority_networks = 10.98.0.0/16
meta_dir=/data/doris/data/doris-meta
enable_fqdn_mode = true
LOG_DIR = /home/doris/logs

be.conf

shell 复制代码
vim /home/doris/software/apache-doris-3.1.4-bin-x64-noavx2/be/conf/be.conf
# 添加配置(使用ip a命令可获取)
priority_networks = 10.98.0.0/16
storage_root_path=/data/doris/data/datastorage
LOG_DIR = /home/doris/logs

二、停止写入任务

该方案需要短暂停写

停止所有写入 doris 的任务,以免出现新老版本数据结构不一致损坏,升级过程中 doris 正常提供读服务。

三、原地停写滚动升级

升级过程具体流程如下:

  1. 关闭副本修复与均衡功能
  2. 升级 BE 节点
  3. 升级 FE 节点
  4. 打开副本修复与均衡功能

升级过程中,要遵循先升级 BE、在升级 FE 的原则。在升级 FE 时,先升级 Observer FE 与 Follower FE 节点,再升级 Master FE 节点。

1、关闭副本修复与均衡功能

在升级过程中会有节点重启,可能会触发不必要的集群均衡和副本修复逻辑,通过以下命令关闭:

shell 复制代码
/home/doris/software/mysql-client/bin/mysql -h doris01 -P 9030 -uroot -p'admin@007'

在 MysqlClient 中输入:

sql 复制代码
admin set frontend config("disable_balance" = "true");
admin set frontend config("disable_colocate_balance" = "true");
admin set frontend config("disable_tablet_scheduler" = "true");
2、三台BE滚动重启,切换软链

在多副本的集群中,选择一台 BE 节点停止进程,进行升级:

shell 复制代码
cd  /home/doris/software/doris/be;
sh bin/stop_be.sh

切换软链到高版本 JDK 和 Doris

shell 复制代码
ln -snf /home/doris/software/jdk-17.0.12 /home/doris/software/java;
ln -snf /home/doris/software/apache-doris-3.1.4-bin-x64-noavx2 /home/doris/software/doris;

启动该 BE 节点:

shell 复制代码
cd  /home/doris/software/doris/be;
sh bin/start_be.sh --daemon

连接集群,查看该节点信息:

shell 复制代码
/home/doris/software/mysql-client/bin/mysql -h doris01 -P 9030 -uroot -p'admin@007'

在 MysqlClient 中输入:

sql 复制代码
show backends

若该 BE 节点 alive 状态为 true,且 Version 值为新版本,则该节点升级成功。

注意:重启完第一台高版本 BE 节点后,剩余低版本 BE 节点数据结构不一致,过一段时间后进程会挂掉,这是正常情况,剩余的高版本 BE 单节点可以正常提供读服务,继续进行剩余 BE 节点升级。

3、滚动重启FE,先FOLLOWER,后Master

多个 FE 节点情况下,选择一个非 Master 节点进行升级,先停止运行:

shell 复制代码
cd  /home/doris/software/doris/fe;
sh bin/stop_fe.sh

使用命令可能会出现找不到 FE 进程,此时使用 jps 命令查询 FE 进程号,再用 kill 命令结束该 FE 进程

启动该 FE 节点:

shell 复制代码
cd  /home/doris/software/doris/fe;
sh bin/start_fe.sh --daemon;

连接集群,查看该节点信息:

shell 复制代码
/home/doris/software/mysql-client/bin/mysql -h doris01 -P 9030 -uroot -p'admin@007'

在 MysqlClient 中输入:

sql 复制代码
show frontends

若该 FE 节点 alive 状态为 true,且 Version 值为新版本,则该节点升级成功。

依次完成其他 FE 节点升级,最后完成 Master 节点的升级

4、打开副本修复与均衡功能

升级完成,并且所有 BE 节点状态变为 Alive 后,打开集群副本修复和均衡功能:

shell 复制代码
/home/doris/software/mysql-client/bin/mysql -h doris01 -P 9030 -uroot -p'bigdata@123'

在 MysqlClient 中输入:

sql 复制代码
admin set frontend config("disable_balance" = "false");
admin set frontend config("disable_colocate_balance" = "false");
admin set frontend config("disable_tablet_scheduler" = "false");

四、重启写入任务

启动写入 doris 的任务,观察升级后的 doris 是否正常写入数据。

相关推荐
ew452181 小时前
【Java】Apache POI 终极封装:支持多表格循环、图片插入、日期格式化的Word导出工具类(兼容POI3.17+)
java·word·apache
小皮蛋儿子3 小时前
mac 微信双开
linux·服务器·apache
zhojiew1 天前
基于Pyspark对Apache Iceberg核心功能的使用实践
apache
SeaTunnel2 天前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
http阿拉丁神猫2 天前
ansible脚本解读
服务器·ansible·apache
小羊Yveesss2 天前
商家小程序外卖订单打印方案:云打印机对接、分单逻辑与模板配置实战
小程序·apache
@insist1232 天前
信息安全工程师-Apache/IIS安全增强与OWASP漏洞防护
安全·apache·软考·信息安全工程师·软件水平考试
Geek_Vison3 天前
如何借助小程序容器技术实现跨端APP的敏捷开发
小程序·apache·敏捷流程
Apache RocketMQ3 天前
Apache RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景
云原生·架构·apache·rocketmq·java-rocketmq