Github user vanzin commented on a diff in the pull request: https://github.com/apache/spark/pull/15009#discussion_r106234552 --- Diff: launcher/src/main/java/org/apache/spark/launcher/SparkLauncher.java --- @@ -528,13 +579,42 @@ public SparkAppHandle startApplication(SparkAppHandle.Listener... listeners) thr pb.environment().put(LauncherProtocol.ENV_LAUNCHER_PORT, String.valueOf(LauncherServer.getServerInstance().getPort())); pb.environment().put(LauncherProtocol.ENV_LAUNCHER_SECRET, handle.getSecret()); + pb.environment().put(LauncherProtocol.ENV_LAUNCHER_STOP_IF_SHUTDOWN, String.valueOf(stopOnShutdown)); try { handle.setChildProc(pb.start(), loggerName); } catch (IOException ioe) { handle.kill(); throw ioe; } + return handle; + } + + private SparkAppHandle startApplicationAsThread(SparkAppHandle.Listener... listeners) throws IOException { + ChildThreadAppHandle handle = LauncherServer.newAppThreadHandle(); + for (SparkAppHandle.Listener l : listeners) { + handle.addListener(l); + } + String appName = getAppName(); + setConf(LAUNCHER_INTERNAL_PORT, String.valueOf(LauncherServer.getServerInstance().getPort())); + setConf(LAUNCHER_INTERNAL_CHILD_PROCESS_SECRET, handle.getSecret()); + setConf(LAUNCHER_INTERNAL_STOP_ON_SHUTDOWN, String.valueOf(stopOnShutdown)); + try { + // It is important that SparkSubmit class is available in the classpath. + // Trying to see if method is available in the classpath else throws Exception. + Method main = SparkSubmitRunner.getSparkSubmitMain(); + Thread submitJobThread = new Thread(new SparkSubmitRunner(main, builder.buildSparkSubmitArgs())); + submitJobThread.setName(appName); + submitJobThread.setDaemon(true); + handle.setChildThread(submitJobThread); + submitJobThread.start(); + } catch (ClassNotFoundException cnfe) { + throw new IOException("Please make sure the spark jar containing SparkSubmit is in the classpath.", + cnfe); + } catch (NoSuchMethodException nsme) { + throw new IOException("Please make sure the spark jar containing SparkSubmit version is correct.", --- End diff -- nit: line > 100 chars You can run `dev/lint-java` and I think it will point these out.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org