前言: FE(Frontend)是 Apache Doris 集群架构中的“大脑”,负责元数据管理、查询解析和调度等关键任务。一旦 FE 出现问题,整个集群的稳定性和可用性将受到严重影响。因此,掌握 FE 故障定位与排查方法对于保障 Doris 运行至关重要。本文将结合官方文档与实际经验,系统梳理 FE 问题排查的完整路径。


在这里插入图片描述

一、FE 元数据结构与排查文档

在排查 Doris 问题时,理解 FE 元数据的组织方式非常重要。以下是官方提供的两篇核心文档,建议在遇到问题时首先阅读:

  • 🔗 FE 元数据设计原理
  • 🔗 元数据操作失败的排查方法

二、排查 FE 问题需要收集哪些信息?

定位问题,第一步是“取证”。这里列出你在排查 FE 相关故障时必须要收集的文件与信息清单

✅ 日志类文件

  1. FE 日志目录(fe/log/)下的:

    • fe.log:主日志,核心排查依据
    • fe.audit.log:用户行为与 SQL 审计
    • fe.gc.log:GC 详情,有助分析是否存在 GC pause 过长
    • fe.out:FE 控制台日志,有时比 fe.log 更早打印异常栈(尤其是FE core的信息都在这里记录)
  2. BDBJE 元数据日志(fe/doris-meta/bdb/je.info.0

    • 注意:日志时间为 UTC,需+8小时换算为北京时间
  3. 版本信息:

    • 执行 start_fe.sh --version 查看 commit ID
  4. FE 状态:

    • 执行 SHOW FRONTENDS 获取当前所有 FE 节点状态与角色
  5. Prometheus 监控指标(如接入 Grafana,使用Doris Manager也是可以的)

    • JVM 堆内存使用率
    • 线程数
    • 当前导入 job 数
    • checkpoint 失败次数等
  6. 如果怀疑“卡住”或“死锁”,请提供以下内容:

    • jstack -l <pid> 获取线程状态
    • jmap -heap <pid> 查看堆内存分布
    • jmap -histo:live <pid> 查看对象统计
    • jmap -dump:file=xxx.hprof <pid> 获取内存镜像用于离线分析
  7. 主机级别的信息:

    • dmesg -T > dmesg.txt 查看操作系统层异常(看看是不是OOM)
    • CPU、内存、磁盘、网络使用情况指标

三、FE 挂掉的常见原因与排查方法

1. 无法达成多数写副本,FE 崩溃

Insufficient acks for policy:SIMPLE_MAJORITY. Need replica acks: 1. Missing replica acks: 1
  • 可能原因:

    • GC 暂停时间过长,导致心跳超时
    • 堆内存不足,JVM 被 OOM
    • Follower 节点挂掉,Master 成为孤岛
    • Fsync 写磁盘耗时过长(je.info.0 会有 fsync 超时日志)
  • 建议做法:

    • 查看 GC 日志中是否存在"concurrent mode failure"或"promotion failed"
    • 使用 jmap 分析堆中是否存在大对象或泄漏
    • 检查是否有节点宕机或物理资源(CPU/磁盘)异常

2. JVM 堆内存 OOM

  • 现象:FE 异常退出,日志出现 OOM 相关堆栈信息。

  • 建议做法:

    • 优化导入 label 保留参数,避免内存长期被事务占用:
      label_keep_max_second = 21600
      streaming_label_keep_max_second = 21600
      
    • 将 GC 策略从 CMS 改为 G1,并设置合理的 pause 时间
      JAVA_OPTS="-Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
      
      注意⚠️:Doris 2.1.x之后默认使用G1

3. 操作系统 OOM Killer 杀死 FE

  • 排查路径:

    • 使用 dmesg -T | grep -i java 查看 OOM 记录
    • 检查是否其他进程抢占了系统内存
  • 建议做法:

    • FE 和 BE尽量不要混合部署
    • 适当增加机器内存(终极解决办法)

四、FE 启动失败的常见原因

1. BDBJE 元数据损坏或磁盘空间不足

  • 报错提示:DiskLimitExceptionmeta out of date
  • 检查点:
    • 查看 je.info.0 是否有异常
    • 检查磁盘空间是否充足

2. 集群时钟不同步

  • 报错:Clock delta: xxx ms. between Feeder
  • 建议所有节点启用 ntpd 或 chronyd 同步时间

3. 启动 jar 包不一致或 jar 包冲突

  • 如高版本的 meta 使用了低版本 Doris jar 启动
  • 或 jar 包残留版本冲突,导致反序列化失败

4. 节点间网络通信受限

  • 防火墙导致 heartbeat、editlog 传输失败

五、其他 FE 常见故障与处理建议

1. FE 卡住、死锁、CPU 飙高

  • 检查点:
    • jstack 查看是否存在死锁
    • Prometheus 查看 GC 时间、LoadJob 数量
    • 检查 checkpoint 是否阻塞主线程

2. checkpoint 无法完成导致 image 巨大

  • /doris-meta/image/ 下 image 文件几十 GB
  • 可能因为导入 label 未清理、ccr binlog 堆积等导致

3. SHOW FRONTENDS 执行缓慢

  • 原因可能是域名解析问题/ 线程泄漏 / 内存泄漏导致 FE 状态无法快速响应

六、常用 Java 内存分析工具

工具用途
jmap查看堆结构、对象统计、dump 内存镜像
jstack查看线程状态、排查死锁
GCEasy分析 GC 日志
[JProfiler / Eclipse MAT]分析 .hprof 文件,定位内存热点
Arthas在线火焰图分析、方法跟踪

七、Grafana FE 常用监控指标

  1. JVM Heap 使用率:是否频繁达到 70% 阈值
  2. 线程数量:是否存在异常增长,是否持续活跃
  3. 导入 Job 数量:是否持续过高未清理
  4. checkpoint 成功率与耗时:是否频繁失败或超时
  5. editlog 写入延迟:是否磁盘卡顿或主线程阻塞
  6. CPU/内存/磁盘 IO/网络:系统资源瓶颈是否影响 FE

结语

FE 是 Apache Doris 的“心脏”,掌握其运行机制与问题排查路径,是数据库平台稳定运行的基础。建议在生产环境中部署完善的日志采集、监控系统,并对 GC 策略、内存设置等进行合理调优。如果你遇到 FE 崩溃、卡顿、无法启动等问题,不要轻易使用 recovery 方法拉起,请先查日志、取 dump、看指标,再分析、再修复。搞不定的话,可以联系社区同学,他们嘎嘎热心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909836.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909836.shtml
英文地址,请注明出处:http://en.pswp.cn/news/909836.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK AndroidFramework 内置应用可,卸载,恢复出厂设置恢复安装

device/rockchip/rk356x/rk3568_r/preinstall_del/Android.mkdevice/rockchip/rk356x/rk3568_r/preinstall_del/Android.mk include $(call all-subdir-makefiles) 拿内置LoyversePos应用做例子 device/rockchip/rk356x/rk3568_r/preinstall_del/preinstall.mk PRODUCT_PACK…

一文了解Blob文件格式,前端必备技能之一

文章目录 前言一、什么是Blob&#xff1f;二、Blob的基本特性三、Blob的构造函数四、常见使用场景1. 文件下载2. 图片预览3. 大文件分片上传 四、Blob与其他API的关系1. File API2. FileReader3. URL.createObjectURL()4. Response 五、性能与内存管理六、实际案例&#xff1a;…

LLMs 系列实操科普(4)

六、deep research 这是 chatgpt 推出的功能&#xff0c;但我这里是免费用户&#xff0c;一个月才有 5 次使用机会&#xff0c;而且使用的是轻量化模型版本&#xff0c;相对体验上比较鸡肋一些。 那这个深度思考研究是个什么东西呢&#xff1f; 根据 openai 对其的解释是&…

若依框架前端调用后台服务报跨域错误

背景&#xff1a;使用若依框架的前后端分离项目&#xff0c;前后端开发在同一个办公室情况下前端调用后端服务提示如下报错&#xff1a;Access to XMLHttpRequest at http://ip1:8089/online/layer/dataType from origin http://ip2:6090 has been blocked by CORS policy: Res…

PHP商城源码:构建高效电商平台的利器

一、PHP商城源码的核心优势 1. **开源免费&#xff0c;降低成本** PHP作为开源语言&#xff0c;拥有庞大的开发者社区&#xff0c;成熟的商城源码&#xff08;如EcShop、OpenCart&#xff09;可免费获取&#xff0c;大幅降低企业的技术投入成本。 2. **开发效率高** PHP语法…

【学习笔记】C++代码规范整理

【学习笔记】C代码规范整理 一、匿名空间namespace 匿名命名空间&#xff08;Anonymous Namespace&#xff09;是一种特殊的命名空间声明方式&#xff0c;其作用是将声明的成员限定在当前编译单元&#xff08;源文件&#xff09;内可见&#xff0c;类似于使用 static 关键字修…

数学复习笔记 29 不定积分

前言 复习的时候时常复习一下以前复习的高数&#xff0c;温故而知新&#xff0c;可以为师矣。现实生活中有非常多让我难受的事情&#xff0c;贤者模式的时候也会对一些自己的行为嗤之以鼻&#xff0c;复习考研对其他三门科目都没有学出来正反馈&#xff0c;只能从数学这儿找一…

微软因安全漏洞禁用黑暗环境下的Windows Hello面部识别功能

面部识别技术在各种场景中的应用日益广泛&#xff0c;但身份欺诈事件仍时有发生&#xff0c;这表明即使面部识别也并非万无一失。在某些情况下&#xff0c;这些系统可能被攻击者利用。 漏洞发现与应对措施 近期&#xff0c;微软在Windows 10和11系统中禁用了黑暗环境下使用Wi…

产品经理课程(十五)实战点评(3)

&#xff08;一&#xff09;复习 需求文档是产品的说明书 需求文档包含&#xff1a;修订记录、背景、主要流程、详细功能逻辑、数据上报&#xff0c;发布策略 bug也是需求文档的一部分 &#xff08;二&#xff09;案例讲解 案例一&#xff1a; 一个版本里面的4-5个功能点就比…

大模型量化与剪枝

大模型量化&#xff0c;剪枝 量化有助于减少显存使用并加速推理 GPTQ 等后训练量化方法(Post Training Quantization)是一种在训练后对预训练模型进行量化的方法。 ### model model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct template: llama3### export export_di…

Oracle 数据库数据操作:精通 INSERT, UPDATE, DELETE

作者&#xff1a;IvanCodes 日期&#xff1a;2025年6月18日 专栏&#xff1a;Oracle教程 在 Oracle 数据库中&#xff0c;对表内数据进行增加、修改和删除操作是通过数据操作语言 (DML - Data Manipulation Language) 来完成的。核心的DML语句包括 INSERT (插入新数据), UPDATE…

推荐使用的Unity插件(InputSystem)

本文将提供更简洁的步骤和常见问题解决。 一、极简入门步骤&#xff1a; 安装&#xff1a;Package Manager中安装Input System&#xff08;确保Unity版本在2019.4&#xff09; 创建Input Actions&#xff1a; 在Project窗口右键 -> Create -> Input Actions 双击打开…

清理 Docker 容器日志文件方法

操作总结与问题解析 一、操作目的与背景 用户旨在清理 Docker 容器日志文件以释放服务器存储空间,主要通过以下命令组合完成操作: 查看容器日志空间占用清空指定容器的日志文件验证容器运行状态与日志清理效果二、关键命令与输出解析 1. 查看 Docker 容器日志空间占用 du…

图片压缩工具 | 按指定高度垂直切割图片

OPEN-IMAGE-TINY&#xff0c;一个基于 Electron VUE3 的图片压缩工具&#xff0c;项目开源地址&#xff1a;https://github.com/0604hx/open-image-tiny ℹ️ 需求描述 在上一篇文章一段代码利用 snapdom 将 CSDN 博文转化为长图片&#xff08;PNG/JPG/PDF&#xff09;中&…

山东大学软件学院创新项目实训开发日志——第十七周(二)

目录 1.优化前端日历页面显示&#xff0c;增加鼠标悬停显示当日会议基本信息的效果。 2.优化会议计划生成与会议PPT生成功能&#xff0c;使得能够加载多页docx文件与PDF文件 3.优化了会议PPT生成功能&#xff0c;使得可以上传多个文件并根据多个文件生成会议PPT 4.修改了识…

Ubuntu 使用kubeadm部署k8s系统组件反复重启的问题

系统&#xff1a;Ubuntu 24.04 LTS 问题现象&#xff1a;kubeadm init 后系统组件proxy、apiserver、etcd等频繁挂掉重启 问题原因&#xff1a;cgroup配置问题 解决方法&#xff1a; 编辑系统cgroup默认配置文件 sudo nano /etc/default/grub 将GRUB_CMDLINE_LINUX_DEFAU…

Oracle获取执行计划之EXPLAIN PLAN 技术详解

#Oracle #执行计划 #EXPLAIN PLAN 一、引言 在Oracle数据库性能优化中&#xff0c;​执行计划&#xff08;Execution Plan&#xff09;​是理解SQL语句如何被数据库处理的关键工具。EXPLAIN PLAN是Oracle提供的一种静态分析SQL执行路径的方法&#xff0c;它通过生成逻辑执行…

【论文阅读】Qwen2.5-VL Technical Report

Arxiv:https://arxiv.org/abs/2502.13923 Source code:https://github.com/QwenLM/Qwen2.5-VL Author’s Institution&#xff1a;Alibaba 背景 多模态大模型 多模态大模型MultiModal Large Language Models (MM-LLMs) 的发展可以通过一篇综述了解&#xff1a;MM-LLMs: Re…

vue中computed和watch区别

在 Vue 中&#xff0c;computed 和 watch 都是用来响应式地处理数据变化的工具&#xff0c;但它们的用途和行为有明显区别。 &#x1f50d; 一句话总结 computed&#xff1a;用于声明式计算属性&#xff0c;有缓存。 watch&#xff1a;用于监听响应式数据的变化并执行副作用逻…

大语言模型:提示词决定自我反思效果: “检查回答是否错误” “验证回答是否正确”

大语言模型(LLMs)自我反思的结果很容易受提示词构造的影响 大型语言模型(LLMs)展现出令人印象深刻的零样本和少样本推理能力。有人提出,这些能力可以通过自我反思来提升,即让大型语言模型反思自己的输出,以识别和纠正初始回答中的错误。然而,尽管有一些证据表明自我反…