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'也不会出现下线节点了。
相关推荐
starzy19906 小时前
Flink JobManager启动流程源码深度剖析:从ClusterEntrypoint到JobMaster启动的完整链路
大数据·flink
qq_543447826 小时前
DNS解析怎么排查?故障处理与运维实用手册
运维·服务器·网络·php
DeviceHub6 小时前
AI服务器电源设计进阶:TLVR电感的应用解析与选型验证指南
运维·服务器·人工智能
Apipi*6 小时前
30天速通Linux 第七章进程间通信
linux·运维·服务器
阿明副业观察6 小时前
AI视频生成工具功能与作用全面解析:赋能高效内容创作
大数据·人工智能·aigc·音视频·ai写作
2601_967212726 小时前
电源轨道系统技术实力评估维度与选型技术框架
大数据·经验分享
数智顾问6 小时前
(171页PPT)XX集团信息安全管理体系优化咨询项目信息安全建设规划报告(附下载方式)
大数据
迪康软件zz6 小时前
终端审批体系怎么搭?从模板配置到业务连续性
运维·安全·自动化运维
科技研学社7 小时前
中小服装工装厂自动化改造:产线节拍平衡与工位减负实施方案
运维·自动化
极光通讯7 小时前
服务器内存替代料选型方法论:主料号缺货时如何找到Pin-to-Pin兼容型号
运维·服务器