[jira] [Commented] (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:comment-tabpanel&focusedCommentId=15045433#comment-15045433 ] Marcelo Vanzin commented on SPARK-12176: Do you have a code example and environment where this is an issue? The launcher uses Runtime.exec() which doesn't require escaping anything. In fact I just tested this on Linux and it works fine. > 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. > 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-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (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:comment-tabpanel&focusedCommentId=15046162#comment-15046162 ] Yuhang Chen commented on SPARK-12176: - I modified the descriptions, hope I've made myself clear. Contact me if you need further information. > 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. > 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. > 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: > --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails > -XX:+PrintGCTimeStamps" > But when I use the setConf() API of SparkLauncher, I write code like this: > launcher.setConf("spark.executor.extraJavaOptions", "-XX:+PrintGCDetails > -XX:+PrintGCTimeStamps"). Now, SparkLauncher uses Java's ProcessBuilder to > start a sub-process, in which the spark-submit is finally executed. I > debugged the source, and it turns out the command is like this; > --conf spark.executor.extraJavaOptions=-XX:+PrintGCDetails > -XX:+PrintGCTimeStamps > See? the quotes are gone, and the job counld not be launched with this > command. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (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:comment-tabpanel&focusedCommentId=15046205#comment-15046205 ] Marcelo Vanzin commented on SPARK-12176: As I tried to explain, you need to show (i) code and (ii) explain the environment where you're running this, because *this works for me*. Here's some code that works for me: {code} public static void main(String[] args) throws Exception { SparkLauncher launcher = new SparkLauncher(); launcher.setAppResource(args[0]); launcher.setMainClass(args[1]); launcher.setMaster("local"); launcher.setConf("spark.driver.extraJavaOptions", "-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintCompilation"); // Add code to launch and wait for app. {code} This runs the app and prints what I expect in the output. The fact that you see spaces in the command line printed to stderr does not mean that the child process is being started like that. > 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-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (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:comment-tabpanel&focusedCommentId=15051197#comment-15051197 ] Marcelo Vanzin commented on SPARK-12176: Since you haven't updated this with the requested information, I'll close it tomorrow unless I hear back. > 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-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (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:comment-tabpanel&focusedCommentId=15055508#comment-15055508 ] Saisai Shao commented on SPARK-12176: - It is OK in my local test against latest master branch, seems no such issue. Probably this issue only lies in the old version of Spark. > 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-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org