[ https://issues.apache.org/jira/browse/SPARK-2718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Or updated SPARK-2718: ----------------------------- Description: Say we have the following config: {code} spark.app.name spark shell with spaces and "quotes " and \ backslashes \ {code} This works in standalone mode but not in YARN mode. This is because standalone mode uses Java's ProcessBuilder, which handles these cases nicely, but YARN mode uses org.apache.hadoop.yarn.api.records.ContainerLaunchContext, which does not. As a result, submitting an application to YARN with the given config leads to the following exception: {code} line 0: unexpected EOF while looking for matching `"' syntax error: unexpected end of file at org.apache.hadoop.util.Shell.runCommand(Shell.java:505) at org.apache.hadoop.util.Shell.run(Shell.java:418) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650) at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:300) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) {code} was: Say we have the following config: {code} spark.app.name spark shell with spaces and "quotes " and \ backslashes \ {code} This works in standalone mode but not in YARN mode. This is because standalone mode uses Java's ProcessBuilder, which handles these cases nicely, but YARN mode uses org.apache.hadoop.yarn.api.records.ContainerLaunchContext, which does not. As a result, submitting an application to YARN with the given config leads to the following exception: {code} line 0: unexpected EOF while looking for matching `"' syntax error: unexpected end of file at org.apache.hadoop.util.Shell.runCommand(Shell.java:505) at org.apache.hadoop.util.Shell.run(Shell.java:418) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650) at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:300) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) {code} > YARN does not handle spark configs with quotes or backslashes > ------------------------------------------------------------- > > Key: SPARK-2718 > URL: https://issues.apache.org/jira/browse/SPARK-2718 > Project: Spark > Issue Type: Bug > Components: YARN > Affects Versions: 1.0.2 > Reporter: Andrew Or > Fix For: 1.1.0 > > > Say we have the following config: > {code} > spark.app.name spark shell with spaces and "quotes " and \ backslashes \ > {code} > This works in standalone mode but not in YARN mode. This is because > standalone mode uses Java's ProcessBuilder, which handles these cases nicely, > but YARN mode uses org.apache.hadoop.yarn.api.records.ContainerLaunchContext, > which does not. As a result, submitting an application to YARN with the given > config leads to the following exception: > {code} > line 0: unexpected EOF while looking for matching `"' > syntax error: unexpected end of file > at org.apache.hadoop.util.Shell.runCommand(Shell.java:505) > at org.apache.hadoop.util.Shell.run(Shell.java:418) > at > org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650) > at > org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:300) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)