Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.4.2
-
None
Description
Reproduce steps
- Enable namenode HA
- Shutdown the active namenode, standby takes over
- Run HDFS service check
hdfs service check script uses
hdfs dfsadmin -fs hdfs://mycluster -safemode get | grep OFF
to check if namenode is out of safemode. However this command will fail if 1st NN is down without checking the state of 2nd NN. This is likely a HDFS bug similar to HDFS-8277.
Proposal
There are several approaches to fix this
- Loop each namenode address and get safemode with hdfs dfsadmin -fs hdfs://nn_host:8020 -safemode get | grep OFF, as long as there is one NN returns OFF, consider DFS is not in safemode and continue the rest of check. However is it really necessary to add such complexity for service check?
- Remove the safemode check code, if HDFS is in safemode, read/write operations will fail anyway so service check won't pass
I am preferring to #2 because it makes script simpler and work in all cases. Note this is service check, it should pass as long as HDFS is in working state. It is not namenode check.
Attachments
Attachments
Issue Links
- links to