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

相关推荐
顧棟4 小时前
Apache-doris-2.0.2原地滚动升级3.1.4方案
apache
ew452184 小时前
【Java】Apache POI 终极封装:支持多表格循环、图片插入、日期格式化的Word导出工具类(兼容POI3.17+)
java·word·apache
小皮蛋儿子5 小时前
mac 微信双开
linux·服务器·apache
zhojiew1 天前
基于Pyspark对Apache Iceberg核心功能的使用实践
apache
SeaTunnel2 天前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
http阿拉丁神猫2 天前
ansible脚本解读
服务器·ansible·apache
小羊Yveesss2 天前
商家小程序外卖订单打印方案:云打印机对接、分单逻辑与模板配置实战
小程序·apache
@insist1232 天前
信息安全工程师-Apache/IIS安全增强与OWASP漏洞防护
安全·apache·软考·信息安全工程师·软件水平考试
Geek_Vison3 天前
如何借助小程序容器技术实现跨端APP的敏捷开发
小程序·apache·敏捷流程