2016-05-15 35 views
7

最近有一個(2015年春季)功能顯然旨在允許以編程方式提交火花作業。如何使用編程火花提交功能

這裏是JIRA https://issues.apache.org/jira/browse/SPARK-4924

但存在不確定性(和算上我也一樣)關於如何實際使用這些功能。下面是在JIRA的最新留言:

enter image description here

當詢問這項工作的實際作者進一步解釋它是「看在API文檔」。

「用戶文檔」是Spark API文檔。

作者沒有提供進一步的細節,顯然感覺整個問題都是自我解釋。如果任何人都可以在這裏連接點:特別是 - 在API文檔中的這個新的Spark Submit功能描述 - 這將不勝感激。

下面是一些我找-Pointers以下的信息的:

  • 已被添加到火花API什麼能力
  • 我們如何使用它們
  • 任何例子/其他相關文件和/或代碼

更新在接受的答案中提到的SparkLauncher並推出簡單的應用程序在微不足道的(master = local [*])條件下。它將在實際的集羣上有多大用處還有待觀察。添加打印語句來鏈接代碼後:

的println( 「推出..等待..」) spark.waitFor()

我們確實看到:

推出..和等待..

那麼這可能是一小步。在我走向真正的集羣環境時,會更新這個問題。

回答

7

查看pull request的詳細信息,看起來功能由SparkLauncher類提供,如API docs here中所述。

public class SparkLauncher extends Object

啓動了星火的應用。

使用此類以編程方式啓動Spark應用程序。類 使用構建器模式允許客戶端配置Spark 應用程序並將其作爲子進程啓動。

的API文檔相當很少,但我發現了一個博客帖子,給出了一個worked example(代碼在GitHub repo也可)。我抄了下面的例子(未經測試)的情況下,鏈接去陳舊的簡化版本:

import org.apache.spark.launcher.SparkLauncher 

object Launcher extends App { 
    val spark = new SparkLauncher() 
    .setSparkHome("/home/user/spark-1.4.0-bin-hadoop2.6") 
    .setAppResource("/home/user/example-assembly-1.0.jar") 
    .setMainClass("MySparkApp") 
    .setMaster("local[*]") 
    .launch(); 
    spark.waitFor(); 
} 

參見:

+0

謝謝你在這裏跳。你有沒有試過直接使用這個類?它的使用在正確設置環境方面具有挑戰性。這是我從閱讀JIRA瞭解到併發症可能已經減輕的理解。只需查看API文檔*不會有幫助。我會在這裏讚揚你 - 因爲做了這一點挖掘。 – javadba

+0

更新了OP以進一步解釋正在尋找的內容。 – javadba

+0

使用SparkLauncher查看您的更新。現在嘗試一下。 – javadba