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 是否正常写入数据。

相关推荐
网络豆7 天前
Apache Maven 鸿蒙 PC 适配全记录:把 JVM 构建工具交付到 HiShell
maven·apache·harmonyos
网络豆8 天前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos
网络豆8 天前
Apache HBase 鸿蒙 PC 适配全记录:用 Qt 原生客户端打通 REST 管理与数据读写
apache·hbase·harmonyos
无巧不成书02188 天前
Apache Tomcat 9 下载全指南(Windows,Linux,macOS):版本选型、国内镜像、SHA-512 与 PGP 完整性校验
windows·tomcat·apache
Dream-Y.ocean9 天前
鸿蒙平台 Apache Tomcat 管理控制台适配实战:基于 Electron 壳方案的真实 HTTP 服务器实现
tomcat·apache·harmonyos
betazhou9 天前
Apache seatunel常用配置参数解析说明
apache·seatunnel
凤山老林10 天前
Spring Boot 集成 Apache Kafka Streams 构建流处理应用:状态存储、窗口聚合与
spring boot·kafka·apache
DolphinScheduler社区10 天前
Apache DolphinScheduler 8 月报:权限安全加固,调度补火上线,性能与稳定性持续提升
大数据·安全·开源·apache·任务调度·海豚调度
sbjdhjd10 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
Jackyzhe11 天前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
apache