Apache Doris FE 問題排查與故障分析全景指南

前言: 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)展現出令人印象深刻的零樣本和少樣本推理能力。有人提出,這些能力可以通過自我反思來提升,即讓大型語言模型反思自己的輸出,以識別和糾正初始回答中的錯誤。然而,盡管有一些證據表明自我反…