title: "Bad substitution" when submitting spark job to yarn-cluster
body: <p>I am doing a smoke test against a yarn cluster using <code>yarn-cluster</code> as the master with the <code>SparkPi</code> example program.  Here is the command line:</p>
  
  <pre><code>  $SPARK_HOME/bin/spark-submit --master yarn-cluster 
   --executor-memory 8G --executor-cores 240 --class org.apache.spark.examples.SparkPi 
  </code></pre>
  
  <p>examples/target/scala-2.11/spark-examples-1.4.1-hadoop2.7.1.jar</p>
  
  <p>The yarn accepts the job but then complains about a <strong>"bad substitution"</strong>.  Maybe it is on the <code>hdp.version</code> ??</p>
  
  <pre><code>15/09/01 21:54:05 INFO yarn.Client: Application report for application_1441066518301_0013 (state: ACCEPTED)
  15/09/01 21:54:05 INFO yarn.Client:
       client token: N/A
       diagnostics: N/A
       ApplicationMaster host: N/A
       ApplicationMaster RPC port: -1
       queue: default
       start time: 1441144443866
       final status: UNDEFINED
       tracking URL: http://yarnmaster-8245.lvs01.dev.ebayc3.com:8088/proxy/application_1441066518301_0013/
       user: stack
  15/09/01 21:54:06 INFO yarn.Client: Application report for application_1441066518301_0013 (state: ACCEPTED)
  15/09/01 21:54:10 INFO yarn.Client: Application report for application_1441066518301_0013 (state: FAILED)
  15/09/01 21:54:10 INFO yarn.Client:
       client token: N/A
       diagnostics: Application application_1441066518301_0013 failed 2 times due to AM Container for appattempt_1441066518301_0013_000002 exited with  exitCode: 1
  For more detailed output, check application tracking page:http://yarnmaster-8245.lvs01.dev.ebayc3.com:8088/cluster/app/application_1441066518301_0013Then, click on links to logs of each attempt.
  Diagnostics: Exception from container-launch.
  Container id: container_e03_1441066518301_0013_02_000001
  Exit code: 1
  Exception message: /mnt/yarn/nm/local/usercache/stack/appcache/
  application_1441066518301_0013/container_e03_1441066518301_0013_02_000001/
  launch_container.sh: line 24: $PWD:$PWD/__hadoop_conf__:$PWD/__spark__.jar:$HADOOP_CONF_DIR:
  /usr/hdp/current/hadoop-client/*::$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:
  /usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-.6.0.${hdp.version}.jar:
  /etc/hadoop/conf/secure: bad substitution
  
  Stack trace: ExitCodeException exitCode=1: /mnt/yarn/nm/local/usercache/stack/appcache/application_1441066518301_0013/container_e03_1441066518301_0013_02_000001/launch_container.sh: line 24: $PWD:$PWD/__hadoop_conf__:$PWD/__spark__.jar:$HADOOP_CONF_DIR:/usr/hdp/current/hadoop-client/*:/usr/hdp/current/hadoop-client/lib/*:/usr/hdp/current/hadoop-hdfs-client/*:/usr/hdp/current/hadoop-hdfs-client/lib/*:/usr/hdp/current/hadoop-yarn-client/*:/usr/hdp/current/hadoop-yarn-client/lib/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/lib/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/lib/*:$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure: bad substitution
  
      at org.apache.hadoop.util.Shell.runCommand(Shell.java:545)
      at org.apache.hadoop.util.Shell.run(Shell.java:456)
      at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722)
      at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
      at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
      at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  
  <p>Of note here is:</p>
  
  <pre><code>/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-.6.0.${hdp.version}.jar:
  /etc/hadoop/conf/secure: bad substitution
  </code></pre>
  
  <p>The "sh" is linked to bash:</p>
  
  <pre><code>$ ll /bin/sh
  lrwxrwxrwx 1 root root 4 Sep  1 05:48 /bin/sh -&gt; bash
  </code></pre>