diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 2e87ec6171..e4ff899b1b 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -21,6 +21,8 @@ Trunk - Unreleased YARN-488. TestContainerManagerSecurity fails on Windows. (Chris Nauroth via hitesh) + YARN-490. TestDistributedShell fails on Windows. (Chris Nauroth via hitesh) + BREAKDOWN OF HADOOP-8562 SUBTASKS YARN-158. Yarn creating package-info.java must not depend on sh. 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 26976a1f34..e311957e61 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 @@ -18,6 +18,7 @@ package org.apache.hadoop.yarn.applications.distributedshell; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -39,6 +40,7 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.yarn.api.ApplicationConstants; +import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.ClientRMProtocol; import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse; import org.apache.hadoop.yarn.api.protocolrecords.KillApplicationRequest; @@ -481,14 +483,15 @@ else if (amMemory > maxMem) { // It should be provided out of the box. // For now setting all required classpaths including // the classpath to "." for the application jar - StringBuilder classPathEnv = new StringBuilder("${CLASSPATH}:./*"); + StringBuilder classPathEnv = new StringBuilder(Environment.CLASSPATH.$()) + .append(File.pathSeparatorChar).append("./*"); for (String c : conf.getStrings( YarnConfiguration.YARN_APPLICATION_CLASSPATH, YarnConfiguration.DEFAULT_YARN_APPLICATION_CLASSPATH)) { - classPathEnv.append(':'); + classPathEnv.append(File.pathSeparatorChar); classPathEnv.append(c.trim()); } - classPathEnv.append(":./log4j.properties"); + classPathEnv.append(File.pathSeparatorChar).append("./log4j.properties"); // add the runtime classpath needed for tests to work if (conf.getBoolean(YarnConfiguration.IS_MINI_YARN_CLUSTER, false)) { @@ -505,7 +508,7 @@ else if (amMemory > maxMem) { // Set java executable command LOG.info("Setting up app master command"); - vargs.add("${JAVA_HOME}" + "/bin/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 e6d8ae95f7..43907f0966 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 @@ -29,6 +29,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.util.JarFinder; +import org.apache.hadoop.util.Shell; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.MiniYARNCluster; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; @@ -54,8 +55,8 @@ public static void setup() throws InterruptedException, IOException { conf.setClass(YarnConfiguration.RM_SCHEDULER, FifoScheduler.class, ResourceScheduler.class); if (yarnCluster == null) { - yarnCluster = new MiniYARNCluster(TestDistributedShell.class.getName(), - 1, 1, 1); + yarnCluster = new MiniYARNCluster( + TestDistributedShell.class.getSimpleName(), 1, 1, 1); yarnCluster.init(conf); yarnCluster.start(); URL url = Thread.currentThread().getContextClassLoader().getResource("yarn-site.xml"); @@ -82,7 +83,7 @@ public static void tearDown() throws IOException { } } - @Test + @Test(timeout=30000) public void testDSShell() throws Exception { String[] args = { @@ -91,7 +92,7 @@ public void testDSShell() throws Exception { "--num_containers", "2", "--shell_command", - "ls", + Shell.WINDOWS ? "dir" : "ls", "--master_memory", "512", "--container_memory", @@ -110,7 +111,7 @@ public void testDSShell() throws Exception { } - @Test + @Test(timeout=30000) public void testDSShellWithNoArgs() throws Exception { String[] args = {};