簡體   English   中英

在Apache Spark中提交應用程序

[英]Submit Application in Apache Spark

我是Apache Spark的新手,並嘗試創建一個簡單的應用程序,以本地模式運行它。我意識到它有像spark-submit這樣的腳本來提交應用程序。

我正在尋找像Apache Storm的LocalCluster.submitTopology()類似的東西來以編程方式提交應用程序。 請指出Spark中的等效API。 感謝您的幫助。 謝謝。

我相信你可以在你的主要做到這一點:

 SparkSession sparkSession = SparkSession
            .builder()
            .master("local[2]")
            .appName("appName")
            .getOrCreate();

在2.0。

在火花1.6你你會:

SparkConf sparkConf = new SparkConf().setAppName("appName").setMaster("local[2]")
SparkContext sc = new SparkContext(sparkConf)

因此,您可以在群集模式或本地模式下運行spark應用程序。 如果是群集,您可以選擇yarn,mesos群集或spark獨立群集。

如果你想將你的應用程序提交給yarn或mesos,你必須將你的spark應用程序打包到一個胖罐子里然后使用spark-submit從控制台提交。

如果要以編程方式在群集中運行spark應用程序,則必須設置spark獨立群集並在setMaster()屬性中提供主節點的ip地址。 現在,該應用程序將在群集中運行。

    SparkConf sparkConf = new SparkConf().setAppName("appName").setMaster("spark://sparkmasterip:7077")
    SparkContext sc = new SparkContext(sparkConf)

如果您想以編程方式在本地模式下運行spark應用程序,則必須在項目中設置spark庫並提供no。 在setMaster()屬性中的應用程序中使用的線程數。 現在,該應用程序將以本地模式運行。

SparkConf sparkConf = new SparkConf().setAppName("appName").setMaster("local[8]")
        SparkContext sc = new SparkContext(sparkConf)

您可以使用SparkLauncher ,在包摘要中 ,庫描述如下:

該庫允許應用程序以編程方式啟動Spark。 這個庫只有一個入口點--SparkLauncher類。

有了它,您可以啟動這樣的Spark應用程序:

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();
    // Use handle API to monitor / control application.
  }
}

這為您提供了一個SparkAppHandle來控制您的Spark應用程序。 也可以啟動原始進程,但建議使用上面顯示的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM