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

相关推荐
2601_962065492 天前
interface GigabitEthernet0/0/0
服务器·php·apache
JavaPub-rodert3 天前
Apache Jena 详解:Java 开发者如何真正搭起一套知识图谱与语义服务
java·apache·知识图谱
AOwhisky4 天前
Linux 网络服务架设学习笔记(第五期)——Web 服务(上篇):Apache HTTP Server——从静态到动态
linux·运维·服务器·笔记·学习·云计算·apache
JackSparrow4145 天前
Kafka(七)集成Apache Avro+Apicurio Schema Registry以保障生产者与消费者的消息兼容性
java·中间件·rpc·kafka·apache·avro·schema-registry
智码看视界5 天前
SenseNova U1.5 Lite 部署实测:8B 单卡跑通 4K 生图,Apache 2.0 免费商用
开源·apache·多模态·图像生成·ai生图·sensenova·商汤大模型
海兰9 天前
【 Kafka进阶5】使用 Docker 部署 Apache Kafka 集群完全指南
docker·kafka·apache
垂钓的小鱼19 天前
用关联图谱做量化选股:让基本面惊喜沿着网络扩散
服务器·php·apache
深维AI随笔10 天前
《构建之法》| 第二章个人技术和流程:单元测试不是“可选“,而是“必需“
单元测试·log4j·apache
极客灵风10 天前
免费约课小程序免费约课系统的区别,一文看懂怎么选
apache
xixiaoyunya10 天前
中小微企业轻量组网方案的技术选型与实践:从传统专线到软定义隧道的成本与效能分析
服务器·php·apache