[ https://issues.apache.org/jira/browse/YARN-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13614922#comment-13614922 ]
rainy Yu commented on YARN-157: ------------------------------- I can't commit Attachments. My patch is: Index: src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java =================================================================== --- src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java (revision 90765) +++ src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java (working copy) @@ -140,8 +140,8 @@ // Main class to invoke application master private String appMasterMainClass = ""; - // Shell command to be executed - private String shellCommand = ""; + // Shell command to be executed. the Linux shell command '/bin/sh' is default + private String shellCommand = "/bin/sh"; // Location of shell script private String shellScriptPath = ""; // Args to be passed to the shell command @@ -276,10 +276,11 @@ appMasterMainClass = cliParser.getOptionValue("class", "org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster"); - if (!cliParser.hasOption("shell_command")) { - throw new IllegalArgumentException("No shell command specified to be executed by application master"); + if (cliParser.hasOption("shell_command")) { + //throw new IllegalArgumentException("No shell command specified to be executed by application master"); + shellCommand = cliParser.getOptionValue("shell_command"); } - shellCommand = cliParser.getOptionValue("shell_command"); + //shellCommand = cliParser.getOptionValue("shell_command"); if (cliParser.hasOption("shell_script")) { shellScriptPath = cliParser.getOptionValue("shell_script"); > The option shell_command and shell_script have conflict > ------------------------------------------------------- > > Key: YARN-157 > URL: https://issues.apache.org/jira/browse/YARN-157 > Project: Hadoop YARN > Issue Type: Bug > Components: applications/distributed-shell > Affects Versions: 2.0.1-alpha > Reporter: Li Ming > Labels: patch > > The DistributedShell has an option shell_script to let user specify a shell > script which will be executed in containers. But the issue is that the > shell_command option is a must, so if both options are set, then every > container executor will end with exitCode=1. This is because DistributedShell > executes the shell_command and shell_script together. For example, if > shell_command is 'date' then the final command to be executed in container is > "date `ExecShellScript.sh`", so the date command will treat the result of > ExecShellScript.sh as its parameter, then there will be an error. > To solve this, the DistributedShell should not use the value of shell_command > option when the shell_script option is set, and the shell_command option also > should not be mandatory. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira