Apache Doris 极简运维之BE扩缩容(1)

Apache Doris 极简运维之BE扩缩容(1)

  • 一、环境信息
  • 二、缩容
    • [2.1 DROP BACKEND缩容](#2.1 DROP BACKEND缩容)
    • [2.2 DECOMMISSION BACKEND缩容](#2.2 DECOMMISSION BACKEND缩容)
      • [2.2.1 缩容前](#2.2.1 缩容前)
      • [2.2.2 缩容中](#2.2.2 缩容中)
      • [2.2.3 缩容后](#2.2.3 缩容后)
  • 三、扩容
    • [3.1 扩容前](#3.1 扩容前)
    • [3.2 扩容中](#3.2 扩容中)
    • [3.3 扩容后](#3.3 扩容后)
  • 四、总结

一、环境信息

已部署三个BE节点并且状态显示正常运行中

硬件信息

  1. CPU :1C
  2. CPU型号:ARM64
  3. 内存 :2GB
  4. 硬盘 :36GB SSD

软件信息

  1. VM镜像版本 :CentOS-7
  2. Apahce Doris版本 :1.2.4.1
  3. 集群规模:1FE * 3BE

二、缩容

2.1 DROP BACKEND缩容

注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!

所以强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当使用这个语句时,会有对应的防误操作提示。

sql 复制代码
-- ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port"; -- 会有误操作提示
-- ALTER SYSTEM DROPP BACKEND "be01:9050"; --直接删除,慎用!

2.2 DECOMMISSION BACKEND缩容

DECOMMISSION 命令说明:

  1. 该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。
  2. 该命令是一个异步操作。执行后,可以通过 SHOW PROC '/backends'; 看到该 BE 节点的 isDecommission 状态为 true。表示该节点正在进行下线。
  3. 该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于 isDecommission 为 true 的状态。
  4. DECOMMISSION 的进度,可以通过 SHOW PROC '/backends'; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。
  5. 该操作可以通过:
sql 复制代码
CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";

命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡

sql 复制代码
-- ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
ALTER SYSTEM DECOMMISSION BACKEND "be01:9050";

2.2.1 缩容前

http://192.168.31.78:8030/System?path=//backends查看be节点信息

2.2.2 缩容中

缩容失败;缩容BE节点一直处于 isDecommission 为 true 的状态,因为剩余机器数量不满足最小副本数(3个副本)。

  1. 取消DECOMMISSION BACKEND 并将3副本的表都调成2副本
sql 复制代码
-- 取消DECOMMISSION BACKEND
-- CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
CANCEL DECOMMISSION BACKEND "be01:9050";

-- 3副本表调成2副本
-- 非分区部分
ALTER TABLE db.table_name SET ("default.replication_num" = "2");
ALTER TABLE db.table_name SET ("default.replication_allocation" = "tag.location.default: 2");
-- 分区部分
ALTER TABLE zbh_test.dwd_lbu_mbi_bil_income_d02 MODIFY PARTITION (逗号分隔可填写多个分区名) SET("replication_num"="2");

-- 如下图所示tablet数开始减少至2副本的量
  1. 满足缩容的副本要求后,重新执行DECOMMISSION BACKEND
sql 复制代码
-- ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
ALTER SYSTEM DECOMMISSION BACKEND "be01:9050";

2.2.3 缩容后

副本自动均衡至非下线节点,副本均衡完毕后会自动drop掉下线的be节点,但进程需要自己去stop

shell 复制代码
# 需要手动停止be进程
sh bin/stop_be.sh 

三、扩容

3.1 扩容前

3.2 扩容中

sql 复制代码
-- 新增be节点,需要确保已经start相应的be进程
alter system add backend "192.168.31.136:9050"

-- 如下图所示新be已经加入集群并开始自动进行数据均衡了

3.3 扩容后

数据完全均衡后如下图所示,几乎等同于be缩容完成前2副本的tablet分布

四、总结

  1. 扩容会自动进行数据均衡
  2. 缩容会自动进行数据均衡,但需要注意不能直接DROP,需要走DECOMMISSION并且sh stop_be.sh
  3. 迁移效率参考:16:32开始复制迁移(1.590 TB / 141tablets);17:39迁移完成,平均1667235m / 4020s = 414m/s(大表耗时,可通过weiui的statistic查看还在迁移的tablet);迁移完后节点就完成下线、show PROC '/backends'也不会出现下线节点了。
相关推荐
梁萌5 分钟前
Windows系统Jenkins企业级实战
运维·windows·ci/cd·svn·jenkins
chat2tomorrow5 分钟前
数据中台建设系列(五):SQL2API驱动的数据共享与服务化实践
大数据·数据库·数据仓库·sql·数据治理·数据中台·sql2api
鼾声鼾语1 小时前
Nvidia Isaac Sim组装机器人和添加传感器,创建关节树Articulation
运维·算法·安全·机器人·angular.js
盘古信息IMS1 小时前
富乐德传感技术&盘古信息 | 锚定“未来工厂”新坐标,开启传感器制造行业数字化转型新征程
大数据·人工智能·制造
lboyj1 小时前
从AI到新能源:猎板PCB的HDI技术如何定义高端制造新标准?
大数据·人工智能
开目软件1 小时前
开目新一代MOM:AI赋能高端制造的破局之道
大数据·人工智能·制造·mom·开目软件
郭不耐1 小时前
DeepSeek智能时空数据分析(八):NL2SQL绘制河流-轨迹缓冲区如何生成
大数据·数据分析·云计算·aigc·数据可视化
果冻人工智能2 小时前
AI能否取代软件架构师?我将4个大语言模型进行了测试
大数据·人工智能·深度学习·语言模型·自然语言处理·ai员工
Acrel136119655142 小时前
Acrel-EIoT 能源物联网云平台在能耗监测系统中的创新设计
大数据·人工智能·能源·创业创新
大腾智能3 小时前
五一旅游潮涌:数字化如何驱动智慧旅游升级
大数据·人工智能·数字化·旅游数字化