2015-04-01 69 views
2

我配置了3個日誌節點,比如說JN1,JN2,JN3。每個人都將編輯日誌保存在/ tmp/hadoop/journalnode/mycluster下...如何恢復HDFS日誌節點?

基於此,我啓動了我的namenode,secondary namenode和一堆datanode。該系統運行良好,直到有一天JN2JN3已經死亡。此外,磁盤已損壞。

然後我購買了新磁盤並重新啓動了JN2和JN3。壞事是它不再工作了。

它不斷抱怨

org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException: Journal Storage Directory /tmp/hadoop/dfs/journalnode/mycluster not formatted 
     at org.apache.hadoop.hdfs.qjournal.server.Journal.checkFormatted(Journal.java:457) 
     at org.apache.hadoop.hdfs.qjournal.server.Journal.getEditLogManifest(Journal.java:640) 
     at org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer.getEditLogManifest(JournalNodeRpcServer.java:185) 
     at org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolServerSideTranslatorPB.getEditLogManifest(QJournalProtocolServerSideTranslatorPB.java:224) 
     at org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos$QJournalProtocolService$2.callBlockingMethod(QJournalProtocolProtos.java:25431) 
     at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585) 
     at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928) 
     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013) 
     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2009) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:422) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614) 
     at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2007) 

反正有從唯一的生存JN1恢復JN2和JN3?

真的很感謝所有可能的解決方案!

感謝, 萬里

回答

0

問題已經在我複製現有唯一的/ tmp/Hadoop的/ journalnode/myCluster中以JN2和JN3。

2

我能夠通過在日誌主機上創建丟失目錄來解決問題,其中namenode將寫入其編輯文件。

確保創建的版本文件,否則你將得到org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException.

或目錄

複製版本的文件
相關問題