You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Sean Owen (JIRA)" <ji...@apache.org> on 2015/12/14 12:55:46 UTC
[jira] [Resolved] (SPARK-12176) SparkLauncher's setConf() does not
support configs containing spaces
[ https://issues.apache.org/jira/browse/SPARK-12176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean Owen resolved SPARK-12176.
-------------------------------
Resolution: Not A Problem
> SparkLauncher's setConf() does not support configs containing spaces
> --------------------------------------------------------------------
>
> Key: SPARK-12176
> URL: https://issues.apache.org/jira/browse/SPARK-12176
> Project: Spark
> Issue Type: Bug
> Components: Spark Core
> Affects Versions: 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2
> Environment: All
> Reporter: Yuhang Chen
> Priority: Minor
>
> The spark-submit uses '--conf K=V' pattern for setting configs. According to the docs, if the 'V' you set has spaces in it, the whole 'K=V' parts should be wrapped with quotes.
> However, the SparkLauncher (org.apache.spark.launcher.SparkLauncher) would not do that wrapping for you, and there is no chance for wrapping by yourself with the API it provides.
> For example, I want to add {{-XX:+PrintGCDetails -XX:+PrintGCTimeStamps}} for executors (spark.executor.extraJavaOptions), and the conf contains a space in it.
> For spark-submit, I should wrap the conf with quotes like this:
> {code}
> --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps"
> {code}
> But when I use the setConf() API of SparkLauncher, I write code like this:
> {code}
> launcher.setConf("spark.executor.extraJavaOptions", "-XX:+PrintGCDetails -XX:+PrintGCTimeStamps");
> {code}
> Now, SparkLauncher uses Java's ProcessBuilder to start a sub-process, in which the spark-submit is finally executed. And it turns out that the final command is like this;
> {code}
> --conf spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps
> {code}
> See? the quotes are gone, and the job counld not be launched with this command.
> Then I checked up the source, all confs are stored in a Map before generating launching commands. Thus. my advice is checking all values of the conf Map and do wrapping during command building.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org