每次format HDFS的时候,Namenode都会生成新的namespaceID。可以认为是current version和previous version。每次出现namespaceID不一致的时候,都可以将每一个实例rollback到previous version。
NamespaceID连接着namenode和datanode以及journalnode。Datanode和Journalnode通过namespaceID将自己绑定到namenode。
本文详细解析了一个Hadoop集群中出现的致命错误,即在进行格式化操作时,Namenode生成了新的namespaceID,而journal节点中的namespaceID与Namenode不同,导致无法实现quorum状态。文章提供了解决方案,建议将实例回滚到previousversion以解决此问题。
2014-04-15 15:00:02,235 FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: recoverUnfinalizedSegments failed for required journal (JournalAndStream(mgr=QJM to [172.16.19.21:8485, 172.16.19.22:8485, 172.16.19.23:8485], stream=null))
org.apache.hadoop.hdfs.qjournal.client.QuorumException: Got too many exceptions to achieve quorum size 2/3. 3 exceptions thrown:
172.16.19.22:8485: Incompatible namespaceID for journal Storage Directory /home/hkx/journaldata/ns2: NameNode has nsId 480343035 but storage has nsId 2072447892
at org.apache.hadoop.hdfs.qjournal.server.JNStorage.checkConsistentNamespace(JNStorage.java:202)
at org.apache.hadoop.hdfs.qjournal.server.Journal.newEpoch(Journal.java:286)
at org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer.newEpoch(JournalNodeRpcServer.java:132)
at org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolServerSideTranslatorPB.newEpoch(QJournalProtocolServerSideTranslatorPB.java:114)
at org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos$QJournalProtocolService$2.callBlockingMethod(QJournalProtocolProtos.java:17439)
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:2048)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2042)
每次format HDFS的时候,Namenode都会生成新的namespaceID。可以认为是current version和previous version。每次出现namespaceID不一致的时候,都可以将每一个实例rollback到previous version。
NamespaceID连接着namenode和datanode以及journalnode。Datanode和Journalnode通过namespaceID将自己绑定到namenode。
您可能感兴趣的与本文相关的镜像
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
582
3173
648
2083
1666

被折叠的 条评论
为什么被折叠?