.../containermanager/ContainerManagerImpl.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java index 44bfc684e2a..8f2fa4e3571 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java @@ -631,7 +631,9 @@ protected void serviceStart() throws Exception { server.start(); connectAddress = NetUtils.getConnectAddress(server); } - NodeId nodeId = buildNodeId(connectAddress, hostOverride); + boolean useIp = conf.getBoolean(YarnConfiguration.NM_USE_IP, + YarnConfiguration.DEFAULT_NM_USE_IP); + NodeId nodeId = buildNodeId(connectAddress, hostOverride, useIp); ((NodeManager.NMContext)context).setNodeId(nodeId); this.context.getNMTokenSecretManager().setNodeId(nodeId); this.context.getContainerTokenSecretManager().setNodeId(nodeId); @@ -645,7 +647,7 @@ protected void serviceStart() throws Exception { // check that the node ID is as previously advertised connectAddress = NetUtils.getConnectAddress(server); - NodeId serverNode = buildNodeId(connectAddress, hostOverride); + NodeId serverNode = buildNodeId(connectAddress, hostOverride, useIp); if (!serverNode.equals(nodeId)) { throw new IOException("Node mismatch after server started, expected '" + nodeId + "' but found '" + serverNode + "'"); @@ -657,14 +659,20 @@ protected void serviceStart() throws Exception { } private NodeId buildNodeId(InetSocketAddress connectAddress, - String hostOverride) { + String hostOverride, boolean useIp) { if (hostOverride != null) { connectAddress = NetUtils.getConnectAddress( new InetSocketAddress(hostOverride, connectAddress.getPort())); } - return NodeId.newInstance( - connectAddress.getAddress().getCanonicalHostName(), - connectAddress.getPort()); + if (useIp) { + return NodeId.newInstance( + connectAddress.getAddress().getHostAddress(), + connectAddress.getPort()); + } else { + return NodeId.newInstance( + connectAddress.getAddress().getCanonicalHostName(), + connectAddress.getPort()); + } } void refreshServiceAcls(Configuration configuration,