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

相关推荐
网络豆8 天前
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
无巧不成书02189 天前
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·任务调度·海豚调度
sbjdhjd11 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
Jackyzhe12 天前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
apache