Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
None
Description
Per HADOOP-1985, If the namenode does not have a dnsToSwicthMapping specified, it does not process block reports from datanode(s). In the ResolutionMonitor, we have the following piece of code:
List<String> rName = dnsToSwitchMapping.resolve(dnHosts);
if (rName == null)
Instead, we should probably set "DEFAULT RACK" for this datanode.
Also, when a processBlockRepont command is dropped by the namenode, it should log a message to facilitate debugging. The code in FSNamesystem.processReport could be something like this:
if (node.getNetworkLocation().equals(NetworkTopology.UNRESOLVED))
{ LOG.info("Ignoring block report from " + nodeID.getName() + " because rack location for this datanode is still to be resolved."); return null; //drop the block report if the dn hasn't been resolved }