我跑在我的本地系統的Hadoop但運行./start-all.sh
命令同時啓動名稱節點的運行,除了名稱節點的所有功能,同時運行它越來越拒絕連接,並在異常下面的日誌文件打印無法在Hadoop中
java.io.ioexception : there appears to be a gap in the edit log, we expected txid 1, but got txid 291.
你能幫我嗎。
我跑在我的本地系統的Hadoop但運行./start-all.sh
命令同時啓動名稱節點的運行,除了名稱節點的所有功能,同時運行它越來越拒絕連接,並在異常下面的日誌文件打印無法在Hadoop中
java.io.ioexception : there appears to be a gap in the edit log, we expected txid 1, but got txid 291.
你能幫我嗎。
Hadoop中NN元數據包含:
fsimage
:包含在時間edit logs
一個點的文件系統的完整狀態:包含每個文件系統改變(文件創建/刪除/修改)是在最新的fsimage之後製作的。如果你列出你的工作空間NN目錄中的所有文件,你會看到文件包括:
fsimage_0000000000000000000 (fsimage)
fsimage_0000000000000000000.md5
edits_0000000000000003414-0000000000000003451 (edit logs, there're many ones with different name)
seen_txid (a separated file contains last seen transaction id)
NN時開始,Hadoop的將加載的FsImage和應用所有的編輯日誌,同時做了很多一致性檢查,如果檢查失敗,它會中止。讓我們做到這一點,我會從我的很多edit logs
rm edits_0000000000000000001-0000000000000000002
在我的NN的工作區,然後嘗試sbin/start-dfs.sh
,我會在日誌中得到錯誤信息,如:
java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, but got txid 3.
所以,你的錯誤消息表明您edit logs
是無足輕重的(可能會損壞或者其中一些可能會丟失)。如果您只想在本地播放hadoop並且不關心其數據,則可以簡單地使用hadoop namenode -format
來重新格式化並從頭開始,否則您需要從SNN或您之前備份的某個位置恢復編輯日誌。
啓用啓用了恢復標誌的namenode。使用以下命令:
./bin/hadoop namenode -recover
您是否有支持節點? –