当前位置: 首页 > news >正文

doris:弹性扩缩容

Doris 支持在线弹性扩容,通过动态添加或移除节点,用户无需中断服务即可满足业务增长需求或降低空闲资源的浪费。扩缩容 BE 节点时,不影响集群可用性,但会涉及到数据搬迁,建议在业务闲时进行扩缩容操作。

扩缩容 FE 集群​

Doris 的 FE 节点分为以下三种角色,每一个 FE 节点都有全量的元数据信息:

  • Master 节点:负责元数据的读写操作,当 Master 的元数据发生变化,会通过 BDB JE 协议同步到非 Master 节点中,同一集群中只能有一个 Master FE 节点;

  • Follower 节点:负责元数据的读取操作,当 Master 节点发生故障时,Follower 节点会发起选主操作,选举出一个新的 Master 节点。在集群内,Master 与 Follower 节点总和建议为奇数个;

  • Observer 节点:负责元数据的读取操作,不参与选主操作。用于扩展 FE 的读服务能力。

一般情况下,每台 FE 节点可以负责 10-20 台 BE 节点的负载操作,3 个 FE 节点可以满足大部分的业务需求。

扩容 FE 集群​

提示:

在新添加 FE 节点时,需要注意以下事项:

  • 新添加的 FE http_port 要与原集群中所有 FE 节点相同;

  • 如果添加 Follower 节点,同一级群内 Master 与 Follower 节点数量总和建议为奇数个

  • 通过 show frontends 命令可以看到当前集群内节点的端口及角色信息

  1. 启动 FE 节点:
fe/bin/start_fe.sh --helper <leader_fe_host>:<edit_log_port> --daemon

  • 注册 FE 节点:

    • 将节点注册为 Follower FE:

      ALTER SYSTEM ADD FOLLOWER "<follower_host>:<edit_log_port>";
      

    • 将节点注册为 Observer FE:

      ALTER SYSTEM ADD OBSERVER "<observer_host>:<edit_log_port>";
      

  • 查看新添加的 FE 节点状态:

    show frontends;
    

缩容 FE 集群​

在缩容 FE 节点时,也要保证最终集群内 Master 与 Follower 节点总和为奇数个,通过以下命令可以缩容节点:

ALTER SYSTEM DROP FOLLOWER[OBSERVER] "<fe_host>:<edit_log_port>";

在缩容后,需要手动删除 FE 目录下的文件。

扩缩容 BE 集群​

扩容 BE 集群​

  1. 启动 BE 进程:

    be/bin/start_be.sh
    

  2. 注册 BE 节点:

    ALTER SYSTEM ADD backend '<be_host>:<be_heartbeat_service_port>';
    

缩容 BE 集群​

在缩容 BE 节点时,可以选择 DROP 或 DECOMMISSION 两种方案:

DROPDECOMMISSION
下线原理直接下线节点,删除掉 BE 节点。发起命令后,会尝试将该 BE 数据迁移到其他节点上,当迁移完成后,BE 节点自动下线。
生效周期执行后立即生效。待数据搬迁完成后,删除命令生效。根据集群现有数据量,可能在小时到 1 天不等时间内。
一副本表处理方案可能会造成数据丢失。不会造成数据丢失。
同时下线多个节点可能会造成数据丢失。不会造成数据丢失。
生产推荐不建议生产环境使用。推荐在生产环境使用。
  • 通过以下命令,可以使用 DROP 方式删除 BE 节点:

    ALTER SYSTEM DROP backend "<be_host>:<be_heartbeat_service_port>";
    

  • 通过以下命令,可以使用 DECOMMISSION 方式删除 BE 节点:

    ALTER SYSTEM DECOMMISSION backend "<be_host>:<be_heartbeat_service_port>";
    

DECOMMISSION 命令说明:

  • DECOMMISSION 是一个异步操作。执行后,可以通过 SHOW backends; 看到该 BE 节点的 SystemDecommissioned 状态为 true。表示该节点正在进行下线;

  • DECOMMISSION 命令可能会执行失败,如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于 SystemDecommissioned 为 true 的状态;

  • DECOMMISSION 的进度,可以通过 SHOW PROC '/backends'; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少;

  • 可以通过 CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port"; 命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡;

  • 可以调整 balance_slot_num_per_path 参数调整数据搬迁速率。

相关文章:

  • 零基础搭建智能法律知识库!腾讯云HAI实战教程
  • GLB文件介绍
  • LeetCode146.LRU 缓存(哈希表+双向链表)
  • debug - 安装.msi时,为所有用户安装程序
  • C# WPF编程-ToggleButton
  • 深入解析 SQL Server 锁机制:如何定位并解决表锁问题
  • OpenCV HighGUI 模块使用指南(Python 版)
  • SpringBoot + MinIO + kkFile 实现文件预览
  • 突破边界:Tauri 2.0全局状态管理的原子级实践
  • FreGS: 3D Gaussian Splatting with Progressive Frequency Regularization论文学习记录
  • SATA(Serial Advanced Technology Attachment)详解
  • Spring常用注解汇总
  • 虚拟机检测与反调试对抗技术
  • opengl中的旋转、平移、缩放矩阵生成函数
  • 力扣53.最大子数组和
  • CUL-CHMLFRP启动器 windows图形化客户端
  • 《深入剖析鸿蒙生态原生应用:一次开发多端部署的技术革新》
  • 23种设计模式-工厂方法(Factory Method)设计模式
  • ccfcsp2701如此编码
  • 统一开放世界与开放词汇检测:YOLO-UniOW无需增量学习的高效通用开放世界目标检测框架
  • 丰富“互换通”产品类型,促进中国金融市场高水平对外开放
  • 4月企业新发放贷款利率处于历史低位
  • 秘鲁总理辞职
  • 沙青青评《通勤梦魇》︱“人机组合”的通勤之路
  • 日本前卫艺术先驱群展上海:当具体派相遇古树古宅
  • 为惩戒“工贼”,美国编剧工会“痛下杀手”