首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Apache Doris 数据均衡问题排查指南

Apache Doris 数据均衡问题排查指南

作者头像
数据极客圈
发布2025-11-12 13:11:54
发布2025-11-12 13:11:54
3010
举报

一、基本介绍

1.1 适用场景

本指南适用于 Doris 集群出现以下数据均衡相关问题时的排查与处理:

  • BE 节点上线/下线进度卡死(表现为 BE 的 tablet 数量长时间无变化)
  • BE 节点之间数据分布不均衡
  • 单个 BE 节点上多个磁盘之间数据分布不均衡

1.2 必备参数检查(前置条件)

数据均衡排查前,需先通过 MySQL 客户端登录 FE 确认核心参数配置正确,检查命令为:

代码语言:javascript
复制
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

单副本场景必改参数

参数修改命令(以单副本参数为例):

代码语言:javascript
复制
admin set frontend config("enable_disk_balance_for_single_replica"="true");

二、数据均衡状态检查

2.1 均衡权重检查(核心判断标准)

通过权重检查可直接判断集群数据均衡状态,推荐优先使用 Web 界面查看,更直观高效。

2.1.1 查看方式

查看方式

操作步骤

核心判断依据

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 列数值

图例参考:

2.1.2 结果解读
  • 若存在 HIGH 等级:对应节点/磁盘负载过高,需要触发均衡调度
  • 若存在 LOW 等级:对应节点/磁盘负载过低,均衡调度会向其迁移数据
  • 全 MID 等级:集群数据分布均衡,无需额外操作

2.2 均衡任务执行情况检查(定位执行异常)

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

2.2.1 正在执行的调度检查
  1. 操作步骤:通过 Web 界面进入 cluster_balance 页面,查看「正在执行的任务」模块
  1. 异常场景处理
    1. 场景 1:任务显示 Running 但目标磁盘空间不下降解决思路: ① 先清理垃圾数据:执行 admin clean trash(均衡过程中冗余副本会暂存于 trash 目录) ② 若清理后无效,排查任务是否真的执行(进入历史记录检查)
    2. 场景 2:无 Running 任务但权重不均衡说明未触发均衡调度,需进入「参数调优」环节调整阈值
2.2.2 历史任务记录检查(排查失败原因)
  1. 操作步骤
    1. Web 界面:在 cluster_balance 页面查看「历史任务记录」模块,按 Finished 时间排序,看是否有大量的CANCELLED状态。如果有,可以看最左边的ErrMsg日志。
  1. 日志排查:登录 Master FE 节点,执行日志检索: grep "tablet schedule|TableSch" fe.log | grep 目标tablet_id
  2. 核心判断点
    1. 若存在大量 CANCELLED 状态任务:查看 ErrMsg 列的报错信息,定位具体失败原因

三、均衡参数调优(解决不均衡/速度慢)

参数调优分为「数据不均衡」和「均衡速度慢」两类场景,需根据实际问题针对性调整。

3.1 数据不够均衡(权重非全 MID)

核心调整两个 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)

3.1.1 调优步骤
  1. 执行修改命令(以提升均衡精度为例):
代码语言:javascript
复制
admin set frontend config ("balance_load_score_threshold" = "0.05");
admin set frontend config ("backend_load_capacity_coeficient" = "0.9");
  1. 调优后验证:通过「2.1 均衡权重检查」确认 Class 等级变化,通过「2.2 任务检查」确认调度任务已触发

3.2 均衡速度慢(任务执行耗时过长)

均衡速度由「BE 硬件性能」和「线程配置」共同决定,需先排查硬件瓶颈,再调整线程参数。

3.2.1 排查步骤
  1. 硬件瓶颈排查:登录目标 BE 节点,执行 iostat -x 1 查看磁盘 IO 状态
    1. 若 %util 接近 100% 或 avgqu-sz 持续过高:磁盘 IO 饱和,需先降低集群写入压力或升级硬件
    2. 若 IO 正常(%util < 70%):通过调整线程参数提升速度
  2. 线程参数调整(BE 级配置): 需修改 BE 节点的 be.conf 配置文件,调整后重启 BE 生效: 参数名称默认值功能说明调优建议storage_medium_migrate_count6介质迁移线程数(控制磁盘间数据迁移速度)磁盘 IO 空闲时可增至 8-12clone_worker_count6副本克隆线程数(控制 BE 间数据迁移速度)同上述参数,同步调整保持一致

四、常见 FAQ(高频问题解决方案)

4.1 事务卡死导致均衡失败

问题现象

均衡任务 ErrMsg 显示「事务相关报错」,或任务反复被取消。

排查与解决
  1. 事务状态检查:登录 FE Web 界面 → 点击 System → transaction,按 prepare time 正排序,查找「长时间处于 prepare 状态」的事务(通常超过 1 小时)。
  2. 手动终止卡死事务

方式 1:通过事务 ID 终止(推荐)

代码语言:javascript
复制
curl -X PUT --location-trusted -u 用户名:密码  -H "txn_id:事务ID" -H "txn_operation:abort"  http://FE节点IP:FE HTTP端口/api/数据库名/表名/stream_load2pc

方式 2:通过 label 终止

代码语言:javascript
复制
curl -X PUT --location-trusted -u 用户名:密码  -H "label:事务label" -H "txn_operation:abort"  http://FE节点IP:FE HTTP端口/api/数据库名/表名/stream_load2pc
  1. 验证:终止后重新查看均衡任务是否恢复执行

4.2 单个 BE 磁盘间不均衡

问题现象

BE 节点间 Class 均为 MID,但单个 BE 内部分磁盘使用率差异大。

核心原因

Doris 均衡调度优先级:BE 节点间均衡 > 单个 BE 磁盘间均衡,需确保节点间均衡后再触发磁盘均衡。

解决步骤
  1. 通过「2.1 均衡权重检查」确认所有 BE 节点 Class 均为 MID
  2. 调小 balance_load_score_threshold 参数(如 0.05),扩大磁盘间不均衡的判定范围
  3. 若为 Doris 2.1+ 版本:查看 Web 界面「MaxDisk」指标,若为 LOG/HIGH 等级,需要触发紧急迁移,待紧急迁移完成后,再执行常规均衡

4.3 磁盘被标记为坏盘

问题现象
  1. 执行 show backends 查看,目标 BE 节点对应磁盘的 IO 指标(如 DataUsed)为 0
  2. 执行 show proc "/backends/<backend id>" 查看,磁盘 State 为 OFFLINE
排查与恢复
  1. 坏盘原因定位:登录目标 BE 节点,执行日志检索:grep "IO Error" be.INFO* | less,常见原因:
    1. 磁盘写满(df -h 查看磁盘使用率)
    2. 磁盘路径不存在(核对 be.conf 中 storage_root_path 配置)
    3. 文件描述符(fd)数量超过限制(ulimit -n 查看)
  2. 恢复步骤
  3. ① 修复根本原因(如清理磁盘空间、修正路径、调大 fd 限制)
  4. ② 删除 BE 节点的坏盘记录:若 conf/be_custom.conf 中有 broken path 配置,直接删除
  5. ③ 重启 BE 节点,执行 show proc "/backends/<backend id>" 确认磁盘 State 变为 ONLINE

4.4 冷存 tablet 无法迁移

问题现象

冷热分层场景下,部分 tablet 无法在同一 BE 的不同磁盘间迁移。

核心原因

标记为「冷存」的 tablet 仅支持 BE 节点间迁移,不支持同一 BE 内磁盘间迁移(冷存通常存储于低成本介质,无需磁盘间均衡)。

4.5 表与 BE 的 tag 不匹配导致无法均衡

问题现象

某张表的副本始终无法均衡到目标 BE 节点。

核心原因

数据均衡仅在「相同 tag + 相同存储介质」的节点间进行,若表的 replication allocation tag 与 BE 节点 tag 不匹配,会导致调度失败。或者backend不含有该表的storage medium ,那么也是无法均衡的。

按照上述方案无法解决可以加我微信或者联系社区同学辅助解决!

往期推荐

Doris BE节点下线卡住?快速排障技巧全攻略!

Apache Doris 索引的全面剖析与使用指南

Apache Doris 湖仓一体:打破数据边界,解锁实时分析的终极答案

Doris vs ClickHouse 企业级实时分析引擎怎么选?

Doris查询报错-230?别慌,教你几招秒解!

Doris Tablet 损坏如何应对?能恢复数据吗?

Doris 导入慢该如何排查和优化

Doris 建表与分区问题全解析

数据极客圈子介绍

圈子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官方社区群

叮咚✨ “数据极客圈” 向你敞开大门,走对圈子跟对人,行业大咖 “唠” 数据,实用锦囊天天有,就缺你咯!快快关注数据极客圈,共同成长!

点击上方公众号关注我们

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据极客圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、基本介绍
    • 1.1 适用场景
    • 1.2 必备参数检查(前置条件)
  • 二、数据均衡状态检查
    • 2.1 均衡权重检查(核心判断标准)
      • 2.1.1 查看方式
      • 2.1.2 结果解读
    • 2.2 均衡任务执行情况检查(定位执行异常)
      • 2.2.1 正在执行的调度检查
      • 2.2.2 历史任务记录检查(排查失败原因)
  • 三、均衡参数调优(解决不均衡/速度慢)
    • 3.1 数据不够均衡(权重非全 MID)
      • 3.1.1 调优步骤
    • 3.2 均衡速度慢(任务执行耗时过长)
      • 3.2.1 排查步骤
  • 四、常见 FAQ(高频问题解决方案)
    • 4.1 事务卡死导致均衡失败
      • 问题现象
      • 排查与解决
    • 4.2 单个 BE 磁盘间不均衡
      • 问题现象
      • 核心原因
      • 解决步骤
    • 4.3 磁盘被标记为坏盘
      • 问题现象
      • 排查与恢复
    • 4.4 冷存 tablet 无法迁移
      • 问题现象
      • 核心原因
    • 4.5 表与 BE 的 tag 不匹配导致无法均衡
      • 问题现象
      • 核心原因
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档