YARN-8169. Cleanup RackResolver.java
Signed-off-by: Akira Ajisaka <aajisaka@apache.org>
This commit is contained in:
parent
e4c39f3247
commit
351e509a47
|
@ -18,11 +18,9 @@
|
|||
|
||||
package org.apache.hadoop.yarn.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.hadoop.classification.InterfaceAudience;
|
||||
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
|
@ -34,24 +32,31 @@ import org.apache.hadoop.net.Node;
|
|||
import org.apache.hadoop.net.NodeBase;
|
||||
import org.apache.hadoop.net.ScriptBasedMapping;
|
||||
import org.apache.hadoop.util.ReflectionUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
@InterfaceAudience.LimitedPrivate({"YARN", "MAPREDUCE"})
|
||||
public class RackResolver {
|
||||
public final class RackResolver {
|
||||
private static DNSToSwitchMapping dnsToSwitchMapping;
|
||||
private static boolean initCalled = false;
|
||||
private static final Log LOG = LogFactory.getLog(RackResolver.class);
|
||||
private static final Logger LOG = LoggerFactory.getLogger(RackResolver.class);
|
||||
|
||||
/**
|
||||
* Hide the default constructor for utility class.
|
||||
*/
|
||||
private RackResolver() {
|
||||
}
|
||||
|
||||
public synchronized static void init(Configuration conf) {
|
||||
if (initCalled) {
|
||||
return;
|
||||
} else {
|
||||
initCalled = true;
|
||||
}
|
||||
initCalled = true;
|
||||
Class<? extends DNSToSwitchMapping> dnsToSwitchMappingClass =
|
||||
conf.getClass(
|
||||
CommonConfigurationKeysPublic.NET_TOPOLOGY_NODE_SWITCH_MAPPING_IMPL_KEY,
|
||||
conf.getClass(
|
||||
CommonConfigurationKeysPublic.NET_TOPOLOGY_NODE_SWITCH_MAPPING_IMPL_KEY,
|
||||
ScriptBasedMapping.class,
|
||||
DNSToSwitchMapping.class);
|
||||
try {
|
||||
|
@ -67,10 +72,10 @@ public class RackResolver {
|
|||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Utility method for getting a hostname resolved to a node in the
|
||||
* network topology. This method initializes the class with the
|
||||
* network topology. This method initializes the class with the
|
||||
* right resolver implementation.
|
||||
* @param conf
|
||||
* @param hostName
|
||||
|
@ -94,33 +99,27 @@ public class RackResolver {
|
|||
}
|
||||
return coreResolve(hostName);
|
||||
}
|
||||
|
||||
|
||||
private static Node coreResolve(String hostName) {
|
||||
List <String> tmpList = new ArrayList<String>(1);
|
||||
tmpList.add(hostName);
|
||||
List <String> tmpList = Collections.singletonList(hostName);
|
||||
List <String> rNameList = dnsToSwitchMapping.resolve(tmpList);
|
||||
String rName = null;
|
||||
String rName = NetworkTopology.DEFAULT_RACK;
|
||||
if (rNameList == null || rNameList.get(0) == null) {
|
||||
rName = NetworkTopology.DEFAULT_RACK;
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Couldn't resolve " + hostName + ". Falling back to "
|
||||
+ NetworkTopology.DEFAULT_RACK);
|
||||
}
|
||||
LOG.debug("Could not resolve {}. Falling back to {}", hostName,
|
||||
NetworkTopology.DEFAULT_RACK);
|
||||
} else {
|
||||
rName = rNameList.get(0);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Resolved " + hostName + " to " + rName);
|
||||
}
|
||||
LOG.debug("Resolved {} to {}", hostName, rName);
|
||||
}
|
||||
return new NodeBase(hostName, rName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Only used by tests
|
||||
* Only used by tests.
|
||||
*/
|
||||
@Private
|
||||
@VisibleForTesting
|
||||
static DNSToSwitchMapping getDnsToSwitchMapping(){
|
||||
static DNSToSwitchMapping getDnsToSwitchMapping() {
|
||||
return dnsToSwitchMapping;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue