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

相关推荐
Gent_倪4 小时前
数据治理之安全管理:Apache Ranger
apache
SelectDB21 小时前
Apache Doris 实战教程:手把手实现 ClickHouse 表结构迁移与数据校验
apache
SelectDB21 小时前
Apache Doris 实战教程:从零搭建 MCP Server,让 AI Agent 直接用自然语言查数据
apache
SelectDB21 小时前
Apache Doris Segment V3 宽表优化实战教程:从建表到体验元数据按需加载
apache
java_logo1 天前
Docker Compose 部署 Apache Superset:轻松搭建开源 BI 平台
docker·开源·apache·superset·轩辕镜像·superset部署方案·docker superset
Gent_倪2 天前
数据治理之元数据管理:Apache Atlas
apache
Kina_C2 天前
Apache HTTP Server 安装、配置与高级功能详解
linux·http·apache
中北marry2 天前
玄机靶场wp 第一章 日志分析-Apache日志分析
apache
java_logo2 天前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
Zhu7583 天前
在k8s环境部署Apache Superset最新版
容器·kubernetes·apache