美文网首页
Spark Launch

Spark Launch

作者: clive0x | 来源:发表于2019-05-27 23:47 被阅读0次

    代码在spark-launcher工程下面:

    package-info.java是入口,看完豁然开朗,向spark submit application。

    主要InProcessLauncher和SparkLauncher两个类。

    一.InProcessLauncher: spark application与caller在同一进程。

    pb启动程序 org.apache.spark.deploy.InProcessSparkSubmit或者org.apache.spark.deploy.SparkSubmit 相关main方法。

    二.SparkLauncher:通过ProcessBuilder submit spark application进程,与caller在俩进程。

    pb启动程序:spark_home/bin/spark-submit ...

    SparkLauncher 又分俩种情况

    1.startApplication()方法,通过hander可以控制application,同时submit时会监听application pb。

    2.通过launch()方法,直接启动ProcessBuilder ,变返回pb。

    * import org.apache.spark.launcher.SparkAppHandle;

    *  import org.apache.spark.launcher.SparkLauncher;

    *

    *  public class MyLauncher {

    *    public static void main(String[] args) throws Exception {

    *      SparkAppHandle handle = new SparkLauncher()

    *        .setAppResource("/my/app.jar")

    *        .setMainClass("my.spark.app.Main")

    *        .setMaster("local")

    *        .setConf(SparkLauncher.DRIVER_MEMORY, "2g")

    *        .startApplication(...可以加Listeners,监听Application变化);

    *      // Use handle API to monitor / control application.

    *    }

    *  }

    * }

    * import org.apache.spark.launcher.SparkLauncher;

    *

    *  public class MyLauncher {

    *    public static void main(String[] args) throws Exception {

    *      Process spark = new SparkLauncher()

    *        .setAppResource("/my/app.jar")

    *        .setMainClass("my.spark.app.Main")

    *        .setMaster("local")

    *        .setConf(SparkLauncher.DRIVER_MEMORY, "2g")

    *        .launch();

    *      spark.waitFor();

    *    }

    *  }

    * }

    相关文章

      网友评论

          本文标题:Spark Launch

          本文链接:https://www.haomeiwen.com/subject/rnjltctx.html