diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java index 976e6a33362..1ba18603e4d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java @@ -854,7 +854,9 @@ public class Client { // Set java executable command LOG.info("Setting up app master command"); - vargs.add(Environment.JAVA_HOME.$$() + "/bin/java"); + // Need extra quote here because JAVA_HOME might contain space on Windows, + // e.g. C:/Program Files/Java... + vargs.add("\"" + Environment.JAVA_HOME.$$() + "/bin/java\""); // Set Xmx based on am memory size vargs.add("-Xmx" + amMemory + "m"); // Set class name diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/test/java/org/apache/hadoop/yarn/applications/distributedshell/TestDistributedShell.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/test/java/org/apache/hadoop/yarn/applications/distributedshell/TestDistributedShell.java index c7e1cf16efb..49d8f3d9db0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/test/java/org/apache/hadoop/yarn/applications/distributedshell/TestDistributedShell.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/test/java/org/apache/hadoop/yarn/applications/distributedshell/TestDistributedShell.java @@ -776,6 +776,12 @@ public class TestDistributedShell { } + private String getSleepCommand(int sec) { + // Windows doesn't have a sleep command, ping -n does the trick + return Shell.WINDOWS ? "ping -n " + (sec + 1) + " 127.0.0.1 >nul" + : "sleep " + sec; + } + @Test public void testDSRestartWithPreviousRunningContainers() throws Exception { String[] args = { @@ -784,7 +790,7 @@ public class TestDistributedShell { "--num_containers", "1", "--shell_command", - "sleep 8", + getSleepCommand(8), "--master_memory", "512", "--container_memory", @@ -819,7 +825,7 @@ public class TestDistributedShell { "--num_containers", "1", "--shell_command", - "sleep 8", + getSleepCommand(8), "--master_memory", "512", "--container_memory", @@ -857,7 +863,7 @@ public class TestDistributedShell { "--num_containers", "1", "--shell_command", - "sleep 8", + getSleepCommand(8), "--master_memory", "512", "--container_memory",