You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by bi...@apache.org on 2018/01/26 18:35:28 UTC
hadoop git commit: YARN-7797. Docker host network can not obtain IP
address for RegistryDNS. Contributed by Eric Yang
Repository: hadoop
Updated Branches:
refs/heads/trunk 56872cff9 -> f2fa736f0
YARN-7797. Docker host network can not obtain IP address for RegistryDNS. Contributed by Eric Yang
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f2fa736f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f2fa736f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f2fa736f
Branch: refs/heads/trunk
Commit: f2fa736f0ab139b5251d115fd75b833d1d7d1dcd
Parents: 56872cf
Author: Billie Rinaldi <bi...@apache.org>
Authored: Fri Jan 26 09:32:23 2018 -0800
Committer: Billie Rinaldi <bi...@apache.org>
Committed: Fri Jan 26 09:32:23 2018 -0800
----------------------------------------------------------------------
.../runtime/DockerLinuxContainerRuntime.java | 28 ++++++++++++++++++++
1 file changed, 28 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f2fa736f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/runtime/DockerLinuxContainerRuntime.java
----------------------------------------------------------------------
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/linux/runtime/DockerLinuxContainerRuntime.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/runtime/DockerLinuxContainerRuntime.java
index 2868dea..f3ce73d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/runtime/DockerLinuxContainerRuntime.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/runtime/DockerLinuxContainerRuntime.java
@@ -58,6 +58,8 @@ import org.apache.hadoop.yarn.server.nodemanager.containermanager.runtime.Contai
import org.apache.hadoop.yarn.server.nodemanager.containermanager.runtime.ContainerRuntimeConstants;
import org.apache.hadoop.yarn.server.nodemanager.containermanager.runtime.ContainerRuntimeContext;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -1013,6 +1015,32 @@ public class DockerLinuxContainerRuntime implements LinuxContainerRuntime {
}
String ips = output.substring(0, index).trim();
String host = output.substring(index+1).trim();
+ if (ips.equals("")) {
+ String network;
+ try {
+ network = container.getLaunchContext().getEnvironment()
+ .get("YARN_CONTAINER_RUNTIME_DOCKER_CONTAINER_NETWORK");
+ if (network == null || network.isEmpty()) {
+ network = defaultNetwork;
+ }
+ } catch (NullPointerException e) {
+ network = defaultNetwork;
+ }
+ boolean useHostNetwork = network.equalsIgnoreCase("host");
+ if (useHostNetwork) {
+ // Report back node manager IP in the event where docker
+ // inspect reports no IP address. This is for bridging a gap for
+ // docker environment to run with host network.
+ InetAddress address;
+ try {
+ address = InetAddress.getLocalHost();
+ ips = address.getHostAddress();
+ } catch (UnknownHostException e) {
+ LOG.error("Can not determine IP for container:"
+ + containerId);
+ }
+ }
+ }
String[] ipAndHost = new String[2];
ipAndHost[0] = ips;
ipAndHost[1] = host;
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org