我是Apache Spark的新手,並嘗試創建一個簡單的應用程序以本地模式運行它。我意識到它有像這樣的腳本來提交應用程序。在Apache Spark中提交應用程序
我在尋找類似的東西,像Apache Storm的 LocalCluster.submitTopology()
以編程方式提交應用程序。請將我指向Spark中的等效API。 欣賞此幫助。 謝謝。
我是Apache Spark的新手,並嘗試創建一個簡單的應用程序以本地模式運行它。我意識到它有像這樣的腳本來提交應用程序。在Apache Spark中提交應用程序
我在尋找類似的東西,像Apache Storm的 LocalCluster.submitTopology()
以編程方式提交應用程序。請將我指向Spark中的等效API。 欣賞此幫助。 謝謝。
我相信你可以在你的主這樣做:在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)
所以你凸輪無論是在集羣模式或本地模式運行的火花應用。 在羣集的情況下,您可以選擇紗線,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)
可以使用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
控制你的星火應用。也可以啓動一個原始程序,但建議使用上面所示的方法。
你是什麼意思「有問題」 –
他的意思是「編程」@kamal Pradhan – avrsanjay