2016-09-19 86 views
1

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

我在尋找類似的東西,像Apache Storm的 LocalCluster.submitTopology()以編程方式提交應用程序。請將我指向Spark中的等效API。 欣賞此幫助。 謝謝。

+0

你是什麼意思「有問題」 –

+0

他的意思是「編程」@kamal Pradhan – avrsanjay

回答

0

我相信你可以在你的主這樣做:在2.0

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

在火花1.6你最好:

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

所以你凸輪無論是在集羣模式或本地模式運行的火花應用。 在羣集的情況下,您可以選擇紗線,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) 
如果要以本地模式運行的火花應用程序編程

你必須設置火花圖書館項目,提供了沒有。線程在setMaster()屬性中的應用中使用。現在應用程序將以本地模式運行。

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

可以使用SparkLauncher,在package summary庫描述如下:

這個庫允許應用程序以編程方式啓動的火花。 只有一個入口點 - 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控制你的星火應用。也可以啓動一個原始程序,但建議使用上面所示的方法。

相關問題