Doris宕机问题排查

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

搭建的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语句具体情况具体分析

在 Apache Doris 的使用过程中,可能会遇到多种问题,这些问题通常与配置、查询、表结构变更以及节点状态相关。以下是常见的问题及其解决方法。 ### Doris 配置问题Doris 的 FE(Frontend)节点启动失败或无法访问 HTTP 接口时,可能是因为配置文件 `fe.conf` 中的 `priority_networks` 设置不正确。该配置用于在主机存在多个 IP 地址时指定 Doris 使用的网络接口。如果配置错误,FE 可能无法绑定到正确的 IP,从而导致无法访问 `http://FE_IP:8030`。解决方法是修改 `priority_networks` 为正确的网络地址,例如 `192.168.0.0/24`,然后重新启动 FE 节点 [^3]。 ### Doris 查询问题 在使用 `MAP_AGG(expr1, expr2)` 进行行转列操作时,需要注意该函数会将分组内的 `expr1` 作为键,`expr2` 作为对应的值,返回一个 `map` 类型的结果。然而,如果同一分组中存在重复的键值,则最终的 `map` 中该键的取值是不确定的。因此,建议确保分组内的键值唯一,以避免数据歧义。例如,以下查询将 `nation` 表按 `n_regionkey` 分组,并使用 `MAP_AGG` 构建一个键值对: ```sql SELECT n_regionkey, MAP_AGG(n_nationkey, n_name) FROM nation GROUP BY n_regionkey; ``` 如果分组中存在重复的 `n_nationkey`,则最终的 `map` 中对应的 `n_name` 可能不是预期的值 [^2]。 ### 表结构变更问题 Doris 支持通过 `ALTER TABLE` 命令对表结构进行修改,包括添加列、删除列、修改列类型和调整列顺序。例如,可以在 `table1` 中添加一列 `uv`,并设置默认值为 `0`: ```sql ALTER TABLE table1 ADD COLUMN uv BIGINT SUM DEFAULT '0' AFTER pv; ``` 可以使用以下命令查看结构变更的执行进度: ```sql SHOW ALTER TABLE COLUMN; ``` 如果结构变更正在进行,且希望取消该操作,也可以通过 `SHOW ALTER TABLE COLUMN` 找到正在执行的变更任务 ID,然后使用 `CANCEL ALTER TABLE` 命令取消任务 [^5]。 ### BE 节点问题 如果 Doris 的 BE(Backend)节点出现异常,可能导致查询性能下降或数据写入失败。可以通过以下命令检查 BE 节点的状态: ```sql SHOW BACKENDS; ``` 在返回的结果中,`isAlive` 字段表示 BE 是否存活,若为 `false`,则表示该 BE 已宕机。此外,`LastStartTime` 字段可以显示 BE 最近一次启动的时间,如果该时间较近,则可能表示 BE 曾经重启过。如果 BE 宕机,可以前往对应的节点查看 `be.out` 日志文件,以排查异常原因。如果没有明显的异常堆栈信息,可以使用以下命令检查系统是否因内存不足(OOM)导致进程被终止: ```bash dmesg -T ``` 如果发现 OOM 导致进程被终止,可以尝试调整 BE 的内存限制或优化查询以减少内存使用 [^4]。 ### 命令执行失败问题 在某些情况下,Doris 的 SQL 命令可能突然无法执行。这可能是由于 FE 或 BE 节点的异常、配置错误、网络问题或资源不足等原因导致。首先需要检查 FE 和 BE 的状态,确认所有节点正常运行。其次,查看 FE 的日志文件 `fe.log` 和 BE 的日志文件 `be.out`,以查找可能导致命令执行失败的错误信息。最后,确保客户端与 Doris 集群之间的网络连接正常,并且没有防火墙或端口限制等问题 [^1]。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值