全部產品
Search
文件中心

E-MapReduce:NameNode或JournalNode的editlogs目錄佔用較大磁碟空間

更新時間:Jul 01, 2024

本文介紹NameNode或JournalNode的editlogs目錄佔用較大磁碟空間的解決方案。

問題原因

HDFS依賴FsImage Checkpoint進行editlogs合并,當FsImage Checkpoint出現異常時,會導致editlogs無法合并,通常異常情況是由於FsImage目錄寫滿或磁碟異常等情況引起的,此時NameNode重啟時間也會變得很長。NameNode FsImage Checkpoint失敗後,該FsImage目錄預設不會再次使用,需要設定開啟FsImage目錄自恢複功能。

解決方案

  1. 手動開啟FsImage目錄自復原選項。

    su - hdfs
    hdfs dfsadmin -restoreFailedStorage true
    說明

    手動開啟FsImage目錄自復原選項,重啟後失效。

    開啟成功後,NameNode後續自動FsImage Checkpoint時,會先嘗試恢複FsImage目錄。

    restoreFailedStorage is set to true
  2. 可選:手動NameNode Checkpoint,詳情請參見手動進行NameNode checkpoint

    手動Checkpoint後會立刻觸發editlogs合并,可以快速減少editlogs產生的磁碟佔用,但是需要NameNode進入到SafeMode,並會造成短暫的HDFS不可用。

  3. 預設開啟FsImage目錄自恢複功能。

    在E-MapReduce控制台的HDFS服務頁面,選擇配置 > hdfs-site.xml,添加參數為dfs.namenode.name.dir.restore,值為true的自訂配置,下次重啟NameNode後FsImage目錄自恢複功能會自動開啟。