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

相关推荐
小小龙学IT15 天前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache
Shepherd061915 天前
【IT 运维】Apache 使用 mod_remoteip 恢复 Cloudflare 后的真实访客 IP
运维·tcp/ip·apache
isyangli_blog15 天前
SDN 基本应用实践 —— 使用命令行实现简易防火墙功能实验报告
服务器·php·apache
小小龙学IT16 天前
Apache Pulsar 深度解析:从架构设计到生产落地
apache
Full Stack Developme17 天前
Apache Tika 教程
java·开发语言·python·apache
laplaya17 天前
C++大型项目组件通信与依赖管理实践
c++·log4j·apache
万岳科技18 天前
教育培训小程序如何构建线上线下一体化教学体系
小程序·apache
yyuuuzz18 天前
云服务器软件部署的几个常见问题
运维·服务器·开发语言·网络·云计算·php·apache
分布式存储与RustFS18 天前
Apache Iceberg数据湖轻量化搭建:基于Rust开源存储方案
开源·apache·iceberg·rustfs·ai存储·ai memory·s3 table
睡不醒男孩03082319 天前
中启乘数 CLup 6.x Apache Doris 存算一体集群管理技术文档
apache·doris·clup