In 3.2.1, if the Observer Namenode is turned on, it cannot be rolled to
Hadoop3.3.4. In 3.2.1, if the Observer Namenode is turned off, it can be rolled
to Hadoop3.3.4. Is it normal?
error message:
ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Error encountered
requiring NN shutdown. Shutting down immediately.
java.lang.IllegalStateException: Cannot start writing at txid 4162 when there
is a stream available for read:
org.apache.hadoop.hdfs.server.namenode.RedundantEditLogInputStream@27606b05
at
org.apache.hadoop.hdfs.server.namenode.FSEditLog.openForWrite(FSEditLog.java:334)
at
org.apache.hadoop.hdfs.server.namenode.FSEditLogAsync.openForWrite(FSEditLogAsync.java:103)
at
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startActiveServices(FSNamesystem.java:1261)
at
org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.startActiveServices(NameNode.java:1956)
at
org.apache.hadoop.hdfs.server.namenode.ha.ActiveState.enterState(ActiveState.java:61)
at
org.apache.hadoop.hdfs.server.namenode.ha.HAState.setStateInternal(HAState.java:64)
at
org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.setState(StandbyState.java:59)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.transitionToActive(NameNode.java:1800)
at
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.transitionToActive(NameNodeRpcServer.java:1784)
at
org.apache.hadoop.ha.protocolPB.HAServiceProtocolServerSideTranslatorPB.transitionToActive(HAServiceProtocolServerSideTranslatorPB.java:112)
at
org.apache.hadoop.ha.proto.HAServiceProtocolProtos$HAServiceProtocolService$2.callBlockingMethod(HAServiceProtocolProtos.java:5409)
at
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:528)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1070)
at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:999)
at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:927)
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:1730)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2915)
observer namnode configuration:
<!-- observer namenode-->
<property>
<name>dfs.namenode.state.context.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.ha.tail-edits.in-progress</name>
<value>true</value>
</property>
<property>
<name>dfs.ha.tail-edits.period</name>
<value>0ms</value>
</property>
<property>
<name>dfs.ha.tail-edits.period.backoff-max</name>
<value>10s</value>
</property>
<property>
<name>dfs.journalnode.edit-cache-size.bytes</name>
<value>1073741824</value>
</property>
<property>
<name>dfs.namenode.accesstime.precision</name>
<value>0</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.HACluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ObserverReadProxyProvider</value>
</property>
<property>
<name>dfs.client.failover.observer.auto-msync-period.HACluster</name>
<value>500ms</value>
</property>
<property>
<name>dfs.client.failover.random.order</name>
<value>true</value>
</property>
<!-- observer namenode-->