Apache-doris 集群扩缩容迁移方案

Apache-Doris集群扩缩容迁移方案

前置准备

软件安装

新机器安装部署好相同版本 doris, 不启动

域名解析新增

为了客户端读写正常,需要对VIP增加新节点的域名

域名解析vip添加新机器,例如:

原域名:doris01.example.comdoris02.example.comdoris03.example.com

新增域名:doris04.example.comdoris05.example.comdoris06.example.com

迁移顺序

  1. BE
  2. FE

扩缩容迁移 BE 节点

扩容 BE 节点

在新机器上全新部署 3 个 BE

新扩容的 3 个 BE 需要注册为新节点,不要用旧数据

删除旧元数据命令:rm -rf /data/doris/data/datastorage;

重新创建元数据目录:mkdir -p /data/doris/data/datastorage;

启动 BE :

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

注册 BE 节点:

连接集群:

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

在 MysqlClient 中输入:

sql 复制代码
ALTER SYSTEM ADD BACKEND "doris04:9050";
ALTER SYSTEM ADD BACKEND "doris05:9050";
ALTER SYSTEM ADD BACKEND "doris06:9050";

查看新be节点是否添加,且Alive = true

sql 复制代码
show proc '/backends';

缩容 BE 节点

连接集群:

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

使用 DECOMMISSION 方式删除旧 BE 节点,在 MysqlClient 中输入:

sql 复制代码
ALTER SYSTEM DECOMMISSION backend "doris01:9050";
ALTER SYSTEM DECOMMISSION backend "doris02:9050";
ALTER SYSTEM DECOMMISSION backend "doris03:9050";

当迁移完成后,BE 节点自动下线,旧 BE 进程不会自动杀死,可使用命令停止

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

DECOMMISSION 命令说明:

发起命令后,会尝试将该 BE 数据迁移到其他节点上,当迁移完成后,BE 节点自动下线。数据搬迁完成后,删除命令生效。根据集群现有数据量,可能在小时到 1 天不等时间内。同时下线多个节点,不会造成数据丢失。

  • DECOMMISSION 执行后,通过 SHOW backends; 看到该 BE 节点 SystemDecommissioned 状态为 true ,表示节点正在进行下线;
  • DECOMMISSION 的进度,可以通过 SHOW PROC '/backends'; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少;
  • DECOMMISSION 可以通过 CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port"; 命令,例如ALTER SYSTEM DECOMMISSION backend "doris01:9050"; 取消。
  • 可以调整 balance_slot_num_per_path 参数调整数据搬迁速率。

扩缩容迁移 FE 节点

扩容 FE 节点

在新机器上全新部署 3 个 FE

新扩容的 3 个 FE 需要注册为新节点,不要用旧元数据

删除旧元数据命令:rm -rf /data/doris/data/doris-meta;

重新创建元数据目录:mkdir -p /data/doris/data/doris-meta;

上线第一台 FE

启动第一台新 FE

shell 复制代码
su - doris;
cd  /home/doris/software/doris/fe;
sh bin/start_fe.sh --helper doris01:9010 --daemon;

连接 FE 集群:

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

将节点注册为 Follower FE,在 MysqlClient 中输入命令:

sql 复制代码
ALTER SYSTEM ADD FOLLOWER "doris04:9010";

等它状态正常

sql 复制代码
SHOW FRONTENDS;

看到 Alive = true, Role = FOLLOWER 再继续。

上线另外两台 FE

启动另外两台新 FE

shell 复制代码
su - doris;
cd  /home/doris/software/doris/fe;
sh bin/start_fe.sh --helper doris01:9010 --daemon;

将另外两台也注册为 Follower FE,在 MysqlClient 中输入命令:

sql 复制代码
ALTER SYSTEM ADD FOLLOWER "doris05:9010";
ALTER SYSTEM ADD FOLLOWER "doris06:9010";

查看3 台 FE 状态:

sql 复制代码
SHOW FRONTENDS;

3 台新 FE 状态应为:

复制代码
Alive = true
Role = FOLLOWER
Join = true

缩容 FE 节点

先找到旧 master (如:doris01)节点 ,把另外两台旧 follower (如:doris02、doris03)节点下掉,再下 master 节点

找到 master 节点

在新 FE 节点上连接集群:

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

在新节点 MysqlClient 中输入:

sql 复制代码
SHOW FRONTENDS;

找到值 IsMaster = true 的节点即为旧 master 节点,最后下线

下线旧 follower 节点

在新节点 MysqlClient 中输入:

sql 复制代码
ALTER SYSTEM DROP FOLLOWER "doris02:9010";

查看状态:

sql 复制代码
SHOW FRONTENDS;

等该 follower 节点状态消失再下另一台。

sql 复制代码
ALTER SYSTEM DROP FOLLOWER "doris03:9010";
下线旧 master 节点

切换 master 到新机器,不允许通过命令直接下线主节点,需要将 master 切换到其他新机器上

在旧 master 节点机器上执行命令,停止 master fe :

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

在新节点 MysqlClient 中查看,此时 master 应该切换到新机器:

sql 复制代码
SHOW FRONTENDS;

在新节点 MysqlClient 中输入命令,下线旧 master 节点:

sql 复制代码
ALTER SYSTEM DROP FOLLOWER "doris01:9010";

域名解析删除

域名解析vip删除旧机器,例如:

旧域名:doris01.example.comdoris02.example.comdoris03.example.com

相关推荐
闲云野鹤在人间3 天前
项目实战:LNMP-电商平台-ECshop
linux·运维·nginx·apache·lvs
隔窗听雨眠3 天前
湖仓一体架构深度解读:Apache Doris如何打破数据边界实现查询提速30倍
架构·apache
南城以南溫暖如初1473 天前
社区健身小程序开发流程详解:技术选型与实施经验分享
java·经验分享·spring boot·mysql·vue·apache
北极糊的狐3 天前
钉钉小程序接入若依(只做增删改查,先不管工作台免登)
apache
SelectDB技术团队4 天前
阶跃星辰 Agent 可观测:Apache Doris / SelectDB 的技术能力与实践
django·apache·知识图谱
万岳科技系统开发4 天前
医疗诊所小程序如何实现患者管理和会员运营?
java·小程序·apache
行业研究员8 天前
腾讯位置服务核心功能与应用场景解析
apache·lbs·腾讯位置服务
SeaTunnel10 天前
Apache SeaTunnel 提交一个任务都经过了什么?
java·大数据·服务器·apache·etl·seatunnel
SelectDB12 天前
基于 Apache Doris 搭建 RAG 系统:从基础 RAG 到知识图谱增强的完整实现与选型指南
apache
SelectDB12 天前
SelectDB Enterprise 4.0.5:企业级实时分析与 AI 数据底座怎么选?安全合规配置指南
apache