我配置了3个日志节点,比方说JN1,JN2,JN3。每个都将编辑日志保存在/ tmp / hadoop / journalnode / mycluster ...
下基于此,我开始了我的namenode,secondary namenode和一堆datanode。系统运行良好,直到有一天 JN2 和 JN3 已经死亡。此外,磁盘已损坏。
然后我购买了新磁盘并重新启动了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 :(得分:2)
我能够通过在Journal主机上创建缺少目录来解决问题,其中namenode将编写其“编辑文件”。
确保创建了VERSION文件,否则您将获得org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException.
或复制目录
中的版本文件答案 1 :(得分:0)
在我将唯一存在的/ tmp / hadoop / journalnode / mycluster复制到JN2和JN3之后,问题就出现了。