
本指南适用于 Doris 集群出现以下数据均衡相关问题时的排查与处理:
数据均衡排查前,需先通过 MySQL 客户端登录 FE 确认核心参数配置正确,检查命令为:
admin show frontend config like '%参数名%';
核心参数说明及配置要求如下表:
参数名称 | 功能说明 | 默认值 | 要求配置 | 特殊说明 |
|---|---|---|---|---|
disable_balance | 控制 BE 节点间均衡开关 | false | 保持 false(开启节点均衡) | - |
disable_disk_balance | 控制单个 BE 磁盘间均衡开关 | false | 保持 false(开启磁盘均衡) | - |
disable_colocate_balance | 控制 colocate 表重定位与均衡开关 | false | 保持 false(开启表均衡) | - |
disable_tablet_scheduler | 控制副本修复与均衡调度开关 | false | 保持 false(开启调度) | - |
enable_disk_balance_for_single_replica | 控制单副本数据的磁盘均衡开关 | false | Doris 2.0.4+ 版本需设为 true | 单副本场景必改参数 |
参数修改命令(以单副本参数为例):
admin set frontend config("enable_disk_balance_for_single_replica"="true");
通过权重检查可直接判断集群数据均衡状态,推荐优先使用 Web 界面查看,更直观高效。
查看方式 | 操作步骤 | 核心判断依据 |
|---|---|---|
Web 界面 | 1. 登录 FE 节点 8030 端口 Web 界面2. 依次点击 System → cluster_balance | 所有节点/磁盘的 Class 等级均为 MID 时,代表数据已均衡(Class 分为 LOW/MID/HIGH 三级) |
SQL 语句 | 执行查询:show proc '/cluster_balance/cluster_load_stat/location_default/HDD' | 同 Web 界面,重点关注 Class 列数值 |
图例参考:


当权重显示不均衡或磁盘空间异常时,需进一步检查均衡任务的执行状态,判断是否存在调度故障。

admin clean trash(均衡过程中冗余副本会暂存于 trash 目录)
② 若清理后无效,排查任务是否真的执行(进入历史记录检查)
grep "tablet schedule|TableSch" fe.log | grep 目标tablet_id
参数调优分为「数据不均衡」和「均衡速度慢」两类场景,需根据实际问题针对性调整。
核心调整两个 FE 级参数,通过降低触发阈值或调整负载权重,强制触发均衡调度。
参数名称 | 默认值 | 功能说明 | 调优指南 |
|---|---|---|---|
balance_load_score_threshold | 0.1 | 均衡触发阈值,差值越小要求越严格 | 需更均衡时调小(如 0.05),扩大不均衡判定范围 |
backend_load_capacity_coeficient | 0.8 | 负载得分计算系数,平衡「磁盘使用率」和「tablet 数量」权重 | 优先保证磁盘使用率均衡:调大(如 0.9,≤1.0)优先保证 tablet 数量均衡:调小(如 0.6,≥0.5) |
admin set frontend config ("balance_load_score_threshold" = "0.05");
admin set frontend config ("backend_load_capacity_coeficient" = "0.9");
均衡速度由「BE 硬件性能」和「线程配置」共同决定,需先排查硬件瓶颈,再调整线程参数。
iostat -x 1 查看磁盘 IO 状态be.conf 配置文件,调整后重启 BE 生效:
参数名称默认值功能说明调优建议storage_medium_migrate_count6介质迁移线程数(控制磁盘间数据迁移速度)磁盘 IO 空闲时可增至 8-12clone_worker_count6副本克隆线程数(控制 BE 间数据迁移速度)同上述参数,同步调整保持一致均衡任务 ErrMsg 显示「事务相关报错」,或任务反复被取消。
方式 1:通过事务 ID 终止(推荐)
curl -X PUT --location-trusted -u 用户名:密码 -H "txn_id:事务ID" -H "txn_operation:abort" http://FE节点IP:FE HTTP端口/api/数据库名/表名/stream_load2pc
方式 2:通过 label 终止
curl -X PUT --location-trusted -u 用户名:密码 -H "label:事务label" -H "txn_operation:abort" http://FE节点IP:FE HTTP端口/api/数据库名/表名/stream_load2pc
BE 节点间 Class 均为 MID,但单个 BE 内部分磁盘使用率差异大。
Doris 均衡调度优先级:BE 节点间均衡 > 单个 BE 磁盘间均衡,需确保节点间均衡后再触发磁盘均衡。
balance_load_score_threshold 参数(如 0.05),扩大磁盘间不均衡的判定范围show backends 查看,目标 BE 节点对应磁盘的 IO 指标(如 DataUsed)为 0show proc "/backends/<backend id>" 查看,磁盘 State 为 OFFLINE
grep "IO Error" be.INFO* | less,常见原因:show proc "/backends/<backend id>" 确认磁盘 State 变为 ONLINE冷热分层场景下,部分 tablet 无法在同一 BE 的不同磁盘间迁移。
标记为「冷存」的 tablet 仅支持 BE 节点间迁移,不支持同一 BE 内磁盘间迁移(冷存通常存储于低成本介质,无需磁盘间均衡)。
某张表的副本始终无法均衡到目标 BE 节点。
数据均衡仅在「相同 tag + 相同存储介质」的节点间进行,若表的 replication allocation tag 与 BE 节点 tag 不匹配,会导致调度失败。或者backend不含有该表的storage medium ,那么也是无法均衡的。
按照上述方案无法解决可以加我微信或者联系社区同学辅助解决!
往期推荐
Apache Doris 湖仓一体:打破数据边界,解锁实时分析的终极答案
Doris vs ClickHouse 企业级实时分析引擎怎么选?
完
●
数据极客圈子介绍
●
圈子1
Apache Doris社区是目前国内最活跃的开源社区(之一)。Apache Doris(Apache 顶级项目) 聚集了世界全国各地的用户与开发人员,致力于打造一个内容完整、持续成长的互联网开发者学习生态圈!
如果您对Apache Doris感兴趣,可以通过以下入口访问官方网站、社区论坛、GitHub和dev邮件组:
💡官网文档:https://doris.apache.org
💡社区论坛:https://ask.selectdb.com
💡GitHub:https://github.com/apache/doris
💡dev邮件组:dev@doris.apache.org
可以加作者微信(Faith_xzc)直接进Doris官方社区群
圈子2
PowerData是由一群数据从业人员,因为热爱凝聚在一起,以开源精神为基础,组成的数据开源社区。
社区群内会定期组织模拟面试、线上分享、行业研讨、线下Meetup、城市聚会、求职内推等活动,同时在社区群内你可以进行技术讨论、问题请教,结识更多志同道合的数据朋友。
社区整理了一份每日一题汇总及社区分享PPT,内容涵盖大数据组件、编程语言、数据结构与算法、企业真实面试题等各个领域,帮助您提升自我,成功上岸。
可以加作者微信(Faith_xzc)直接进PowrData官方社区群
叮咚✨ “数据极客圈” 向你敞开大门,走对圈子跟对人,行业大咖 “唠” 数据,实用锦囊天天有,就缺你咯!快快关注数据极客圈,共同成长!
点击上方公众号关注我们