本文介紹JournalNode出現(xiàn)異常的原因和解決方案。
具體報(bào)錯(cuò)
JournalNode日志出現(xiàn):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.
說(shuō)明 JournalNode日志的詳細(xì)信息,請(qǐng)參見(jiàn)HDFS服務(wù)日志。
問(wèn)題原因
一般由于斷電類機(jī)器異常或者磁盤(pán)寫(xiě)滿,導(dǎo)致JournalNode寫(xiě)入發(fā)生異常。
解決方案
檢查NameNode是否可以正常工作:
- 如果NameNode可以正常工作,建議按照如下步驟修復(fù)JournalNode:
- 對(duì)NameNode觸發(fā)手動(dòng)checkpoint,參見(jiàn)手動(dòng)進(jìn)行NameNode checkpoint。
- 對(duì)異常JournalNode進(jìn)行單獨(dú)修復(fù),參見(jiàn)修復(fù)單臺(tái)JournalNode異常。
- 觀察HDFS Web UI的Journal Status情況,參見(jiàn)HDFS Web UI介紹。
- 如果此時(shí)NameNode無(wú)法啟動(dòng),可參見(jiàn)JournalNode EditsLog異常導(dǎo)致NameNode啟動(dòng)失敗進(jìn)行排查解決。