Description
NPE from JobTracker#resolveAndAddToTopology in MR1 cause initJob and heartbeat failure. The NPE is caused by dnsToSwitchMapping.resolve return null at the following:
List <String> rNameList = dnsToSwitchMapping.resolve(tmpList); String rName = rNameList.get(0);
I check the code in MR2, MR2 handle it correctly in coreResolve of RackResolver.java
List <String> rNameList = dnsToSwitchMapping.resolve(tmpList); String rName = null; if (rNameList == null || rNameList.get(0) == null) { rName = NetworkTopology.DEFAULT_RACK; LOG.info("Couldn't resolve " + hostName + ". Falling back to " + NetworkTopology.DEFAULT_RACK); } else { rName = rNameList.get(0); LOG.info("Resolved " + hostName + " to " + rName); }
We should do the same in MR1, if dnsToSwitchMapping.resolve return null, use NetworkTopology.DEFAULT_RACK.