Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.10.0, 3.3.0, 3.2.1
-
None
-
None
Description
When we enable the ONN , there will be three NN nodes for the client configuration,
Such as configuration
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn2,nn3,nn1</value>
</property>
Currently,
nn2 is in standby state
nn3 is in observer state
nn1 is in active state
When the user performs an access HDFS operation
./bin/hadoop --loglevel debug fs -Ddfs.client.failover.proxy.provider.ns1=org.apache.hadoop.hdfs.server.namenode.ha.ObserverReadProxyProvider -mkdir /user/haiyang1/test8
You need to request nn1 when you execute the msync method,
Actually connect nn2 first and failover is required
In connection nn3 does not meet the requirements, failover needs to be performed, but at this time, failover operation needs to be performed during a period of hibernation
Finally, it took a period of hibernation to connect the successful request to nn1
In FailoverOnNetworkExceptionRetry getFailoverOrRetrySleepTime The current default implementation is Sleep time is calculated when more than one failover operation is performed
I think that the Number of NameNodes as a condition of calculation of sleep time is more reasonable
That is, in the current test, executing failover on connection nn3 does not need to sleep time to directly connect to the next nn node
See client_error.log for details
Attachments
Attachments
Issue Links
- relates to
-
HDFS-14969 Fix HDFS client unnecessary failover log printing
- Resolved