暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Doris磁盘均衡问题排查指南

数据微光 2025-02-27
188

点击上方 蓝字 关注数据微光👆 免费获取Doris+AI知识库

在Doris集群运维中,磁盘均衡是保证数据高效存储和查询性能的关键。然而,由于数据分布不均、参数配置不当或环境异常,磁盘不均衡问题时有发生。本文将深入解析Doris磁盘均衡的优化方法、排查流程、加速数据均衡及常见问题解决方案,助你快速定位并解决问题。

一、均衡任务排查指南

  1. 基础检查项 确认主fe 的以下的配置

执行命令:admin show frontend config like "xxxx"
         其中:
          1. disable_balance = false
          2. disable_disk_balance = false
          3. disable_colocate_balance = false
          4. disable_tablet_scheduler = false
          5. 如果用户是单副本的表,且版本是2.0.4之后,且磁盘不均衡,需要把 enable_disk_balance_for_single_replica 改成true (它的默认值是false)

  1. 负载诊断指标
-- 查看BE负载分布
SHOW PROC '/cluster_balance/cluster_load_stat/location_default/HDD';

  • BE间均衡:Class状态应为MID
  • 磁盘间均衡:MaxDisk状态应为MID
  1. 任务运行监控
-- 查看运行中任务
SHOW PROC '/cluster_balance/running_tablets';

-- 检查历史任务状态
SHOW PROC '/cluster_balance/history_tablets';

常见失败原因:

  • 长事务阻塞(需手动ABORT)
  • 副本迁移超时(调整线程数)
  • 版本BUG(2.0.4前版本建议升级)

二、 典型问题解决方案

1. 单副本磁盘迁移失败

-- 启用单副本平衡
ADMIN SET FRONTEND CONFIG('enable_disk_balance_for_single_replica'='true');

2. OtherUsedCapacity过高

如果OtherUsedCapacity 很大,这时可能也会造成无法磁盘均衡,其他数据占用了很多空间需要手动清理。

SHOW PROC "/backends/be_id"-- 定位大文件


3. 磁盘被标记为Bad

# 检查BE日志
grep "IO Error" be.INFO

恢复步骤:

be/conf/下找见be_customer的文件,打开文件,注释掉被标注路径,重新启动BE节点

4. 存储介质类型

确认be.conf下storage_root_path数据存储路径是否显式指定了存储介质类型,如果没有冷热分层的需求去掉指定的存储介质类型,再重启be。

# 确保BE配置与表一致
storage_root_path=/data1;/data2

5. 垃圾文件占用了磁盘空间

通过如下命令清理垃圾数据

-- 展示回收站元数据:
  SHOW CATALOG RECYCLE BIN;
-- 设置回收站过期时间(如设置为0):
  ADMIN SET FRONTEND CONFIG ("catalog_trash_expire_second" = "0");
-- 清理垃圾数据:
  ADMIN CLEAN TRASH;
-- 恢复回收站默认过期时间(如1天):
  ADMIN SET FRONTEND CONFIG ("catalog_trash_expire_second" = "86400");

注意 admin clean trash只是触发了clean trash去做清理任务,并不是立马会腾出空间,所以执行admin clean trash后并不会里面容量变低。后面异步任务会清理,这两个过期时间的文件。

如果过了一段时间后磁盘占用还是没有减少,执行以下操作

be.conf配置下面的参数,重启BE生效:
snapshot_expire_time_sec = 0 
trash_file_expire_time_sec = 0

6. 资源组不匹配

均衡是对同tag,且同storage medium上进行均衡的。如果表的replication allocation的tag 跟它所在backend的tag不一样,或者backend不含有该表的storage medium ,那么也是无法均衡的。

7. 冷热存储不均衡

如果数据是有使用S3对象冷存的,那么tablet 开始冷存之后,这些tablet 不能在同BE的不同磁盘上挪动了,但仍可以迁移到其他BE节点上。

三、加速磁盘均衡参数配置

FE参数

balance_slot_num_per_path=10          # 每路径的均衡任务槽位数
schedule_slot_num_per_hdd_path=10     # HDD路径调度任务槽位数
max_balancing_tablets=100             # 最大并行均衡任务数

BE参数(需重启生效)

clone_worker_count=6       # 跨BE副本迁移线程数
download_worker_count=3    # 数据下载线程数

通过上述方法,可有效应对Doris磁盘均衡问题。如遇复杂场景,建议参考官方文档或社区讨论获取支持,也可以加我微信(hhj_0530)交流。



往期推荐

「FE 倒下了,但我挺住了」—— Doris FE 挂机应急指南

【建议收藏】Apache Doris 常用命令速查手册

从源码到运行:深入解析 Apache Doris 的编译与 Debug 流程

【Apache Doris】数据副本问题排查指南

从零搭建到实战:基于MinIO的Doris数据备份恢复全攻略


数据微光 专注分享 Apache Doris 的最佳实践、问题解决技巧、学习资源和实用案例,致力于为开发者和技术爱好者提供高质量内容支持和持续学习动力。

📚 特别福利 | 数据微光知识库内含Apache Doris丰富的 学习资料、实战课程、白皮书、行业报告、技术指南,帮助快速掌握数据库核心技能!

📘 领取方式: 关注 “数据微光” 公众号 扫描下方二维码,备注【Doris】即可免费获取! 💻 让我们携手点亮技术微光,共同探索 Doris 的无限可能!







关于社区





Apache Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极易易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发发点查询场景,也能支持高吞吐的复杂分析场景。

如果您对 Apache Doris 感兴趣,可以通过以下入口访问官方网站、社区论坛、GitHub 和 dev 邮件组:

  • 📒 官方文档: https://doris.apache.org
  • 💬 社区论坛: https://ask.selectdb.com
  • 📂 GitHub: https://github.com/apache/doris
  • 📧 dev 邮件组: dev@doris.apache.org

可以加 作者微信 (hhj_0530) 直接进 Doris 官方社区群。

PowerData

PowerData 是由一群数据从业人员,因为热爱凝聚在一起,以开源精神为基础,组成的数据开源社区。

社区群内会定期组织模拟面试、线上分享、行业研讨、线下 Meetup、城市聚会、求职内推等活动。同时,在社区群内您可以进行技术讨论、问题请教,结识更多志同道合的数据朋友。

社区整理了一份每日一题汇总及社区分享 PPT,内容涵盖大数据组件、编程语言、数据结构与算法、企业真实面试题等各个领域,帮助您提升自我,成功上岸。

可以加 作者微信 (hhj_0530) 直接进 PowerData 官方社区群。



点击上方蓝字关注我们

文章转载自数据微光,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论