Doris宕机问题排查

本文记录了一次针对Doris集群频繁宕机的排查过程,主要包括查看BE的日志文件be.out,使用vim查找Queryid,然后在FE的日志fe.audit.log中通过Queryid定位并分析相应的SQL语句,以找出问题根源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建的doris集群有段时间总是宕机,起初不懂如何检查问题所在,后来请社区的开发人员帮忙排查,现记录一次排查步骤

一、进入be的log目录下找到be.out日志文件,vim be.out,按大写字母G到最底下,往上找到Query id,复制该id

二、进入到fe的log文件下,找到fe.audit.log文件,可以通过下面命令找到Query id对应的sql,也可以vim fe.audit.log 然后通过命令:/  Query id 找到对应的sql

grep -r 'Query id' fe.audit.log

 三、通过上面方式找到对应sql之后,再根据对应sql语句具体情况具体分析

<think>好的,我现在需要解决用户关于Doris系统出现errCode=2的问题,即由于磁盘空间不足或BE节点不可用导致统计存储初始化失败的原因和解决方法。首先,我要回忆Doris的基本架构,特别是BE节点的作用以及统计信息存储的相关机制。 用户提到的错误代码2通常与资源不足有关,可能涉及磁盘空间或BE节点的可用性。根据提供的引用,特别是引用[1],磁盘空间不足可能是因为Trash或catalog recycle bin未及时清理,这可能是导致BE节点无法正常工作的原因之一。我需要确认是否还有其他可能的因素,比如BE节点配置问题或元数据损坏。 接下来,解决方法部分需要分步骤处理。首先检查磁盘空间,用户需要查看BE节点的磁盘使用情况,清理不必要的文件。根据引用[1],设置trash_file_expire_time_sec为0可以禁用Trash,避免空间被占用。此外,可能需要调整垃圾回收策略,比如调整catalog_trash_expire_seconds参数。 然后是检查BE节点状态,确认节点是否在线且健康。如果BE节点宕机,需要重启服务,并排查宕机原因,如硬件故障或配置错误。引用[2]提到bdbje的bug可能导致元数据问题,可能需要通过元数据恢复来处理,但用户的问题更直接的是资源不足,所以暂时可能不需要进入元数据恢复阶段。 另外,用户的问题中还提到统计存储初始化失败,这可能与存储路径配置有关。需要检查storage_root_path是否正确设置,确保路径存在且有足够权限。同时,如果存在多个存储路径,确保至少有一个可用。 最后,预防措施方面,建议用户设置监控告警,定期维护系统,如清理过期数据和优化表结构,避免未来再次出现类似问题。同时,检查是否有无效查询导致日志或临时文件堆积,引用[3]提到无效查询可能导致错误,但这里更可能影响的是日志或临时数据占用空间。 总结下来,解决方案应涵盖磁盘空间清理、BE节点状态检查、存储路径验证以及预防措施。需要确保回答结构清晰,步骤明确,并引用相关参考资料中的解决方法。</think>关于Doris系统中因磁盘容量不足或BE节点不可用导致统计存储初始化失败的问题(错误码:`errCode=2`),以下是原因分析及解决方案: --- ### **原因分析** 1. **磁盘空间不足** - **Trash未清理**:Doris的BE节点会将删除的文件暂存至Trash目录,若未及时清理会占用大量空间[^1]。 - **统计信息存储路径异常**:统计信息存储目录(如`storage_root_path`)所在磁盘空间耗尽,导致初始化失败。 - **元数据膨胀**:长时间未清理的元数据(如表版本、副本数据)可能占用过多空间。 2. **BE节点不可用** - BE节点宕机或网络异常,导致集群无法分配存储资源。 - BE节点配置错误(如存储路径权限问题)。 --- ### **解决方案** #### **1. 清理磁盘空间** - **检查磁盘使用情况**: ```bash # 登录BE节点执行 df -h # 查看磁盘空间 du -sh /path/to/storage_root/* # 检查存储目录占用 ``` - **清理Trash目录**: - 修改BE配置文件`be.conf`,设置`trash_file_expire_time_sec = 0`禁用Trash功能。 - 手动删除Trash文件: ```bash rm -rf /path/to/storage_root/trash/* ``` - **清理元数据回收站**: - 调整FE配置`catalog_trash_expire_seconds`(默认1天),自动清理过期元数据。 #### **2. 恢复BE节点可用性** - **检查BE节点状态**: ```sql -- 通过MySQL客户端执行 SHOW BACKENDS\G ``` - 确认`Alive`字段为`true`,若为`false`需排查宕机原因(如日志报错、硬件故障)。 - **重启BE服务**: ```bash # 在BE节点执行 ./bin/stop_be.sh ./bin/start_be.sh --daemon ``` - **验证存储路径权限**: - 确保`storage_root_path`配置的目录存在且权限正确(用户`doris`可读写)。 #### **3. 调整配置预防问题** - **限制统计信息存储**: - 在FE配置文件`fe.conf`中设置统计信息存储上限: ```properties statistic_auto_collect_ratio = 0.5 # 统计信息最大占比 ``` - **启用磁盘均衡**: - 确保BE节点间磁盘使用均衡,避免单节点过载。 --- ### **引用说明** - 清理Trash目录和调整`trash_file_expire_time_sec`可参考磁盘问题排查手册。 - 若BE节点因元数据问题无法恢复,需按元数据运维文档操作[^2]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值