本文介紹JournalNode EditsLog異常導致NameNode啟動失敗的原因和解決方案。
具體報錯
NameNode日志出現:FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: recoverUnfinalizedSegments failed for required journal (JournalAndStream(mgr=QJM to [xxx:8485, xxx:8485, xxx:8485], stream=null)) java.io.IOException: Timed out waiting 120000ms for a quorum of nodes to respond.
說明
NameNode日志的詳細信息,請參見HDFS服務日志。
問題原因
HDFS啟動時無法拉取JournalNode對應的數據,此類錯誤的原因一般為JournalNode異常。
解決方案
登錄對應的JournalNode節點,觀察JournalNode的啟動狀態和日志,參見HDFS的部署拓撲和HDFS服務日志。
如果JournalNode的日志無明顯異常,可檢查機器安全組設置,測試NameNode節點到JournalNode節點的網絡聯通性。
如果JournalNode異常,具體錯誤如下:
org.apache.hadoop.hdfs.server.namenode.FSImage: Caught exception after scanning through 0 ops from /current/edits_inprogress_0000000000000191004 while determining its valid length. Position was 1036288 java.io.IOException: Can't scan a pre-transactional edit log.
此時需要找到健康的JournalNode節點并修復其他異常的JournalNode節點,參見修復單臺JournalNode異常。
文檔內容是否對您有幫助?