diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java index 9e2e111..6611968 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java @@ -18,6 +18,7 @@ package org.apache.hadoop.yarn.server.nodemanager; +import com.google.common.base.Optional; import static org.apache.hadoop.fs.CreateFlag.CREATE; import static org.apache.hadoop.fs.CreateFlag.OVERWRITE; @@ -213,9 +214,16 @@ public int launchContainer(Container container, LOG.warn("Exception from container-launch with container ID: " + containerId + " and exit code: " + exitCode , e); logOutput(shExec.getOutput()); - String diagnostics = "Exception from container-launch: " - + e + "\n" - + StringUtils.stringifyException(e) + "\n" + shExec.getOutput(); + logOutput(e.getMessage()); + + StringBuilder builder = new StringBuilder(); + builder.append("Exception from container-launch.\n"); + builder.append("container id: " + containerId + "\n"); + builder.append("exit code: " + exitCode + "\n"); + builder.append(StringUtils.stringifyException(e) + "\n"); + builder.append(Optional.fromNullable(shExec.getOutput()).or("") + "\n"); + builder.append(Optional.fromNullable(e.getMessage()).or("") + "\n"); + String diagnostics = builder.toString(); container.handle(new ContainerDiagnosticsUpdateEvent(containerId, diagnostics)); } else { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java index cbdcb13..829aeb5 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java @@ -18,6 +18,7 @@ package org.apache.hadoop.yarn.server.nodemanager; +import com.google.common.base.Optional; import java.io.File; import java.io.IOException; import java.net.InetSocketAddress; @@ -297,8 +298,16 @@ public int launchContainer(Container container, LOG.warn("Exception from container-launch with container ID: " + containerId + " and exit code: " + exitCode , e); logOutput(shExec.getOutput()); - String diagnostics = "Exception from container-launch: \n" - + StringUtils.stringifyException(e) + "\n" + shExec.getOutput(); + logOutput(e.getMessage()); + + StringBuilder builder = new StringBuilder(); + builder.append("Exception from container-launch.\n"); + builder.append("container id: " + containerId + "\n"); + builder.append("exit code: " + exitCode + "\n"); + builder.append(StringUtils.stringifyException(e) + "\n"); + builder.append(Optional.fromNullable(shExec.getOutput()).or("") + "\n"); + builder.append(Optional.fromNullable(e.getMessage()).or("") + "\n"); + String diagnostics = builder.toString(); container.handle(new ContainerDiagnosticsUpdateEvent(containerId, diagnostics)); } else {