2017-08-02 35 views
2

我已經在獨立模式下使用cassandra作爲數據集羣設置了一個spark集羣。另一方面,我使用IntelliJ IDEA來編寫驅動程序代碼以發送到Spark集羣以供工作人員執行。發送作業以激發集羣

我想知道是否可以從intellij(在本地計算機上)執行代碼到遠程集羣中,或者我必須創建一個.jar文件並使用sopark-submit?將其部署到工作人員。

我只是在尋找確認,因爲我在做所有設置時遇到問題,需要減少可能性。

在此先感謝。

+0

AFAIK這是不可能的,或者至少我從來沒有見過成功的人(我試過用紗線沒有成功) –

+0

我看到這是一個有點痛苦,然後做。我想使用spark來生成cassandra的報告來提供Neuronal網絡。我需要這個在執行和可用性方面很快。如果我必須始終創建一個包含報告代碼的jar,請上傳到主服務器,運行spark-submit並從創建的csv中檢索結果,或者任何spark都會失去很多魅力。你能證實這是唯一的方法嗎? – Notbad

回答

1

必須在Spark-cluster執行代碼,並在的IntelliJ設置該集羣的配置,您SparkContext從而您可以編寫代碼並部署你的代碼到遠程羣集,其中星火將執行的話,我建議你閱讀spec關於提交申請在集羣上。 配置用於啓動應用程序可以是下一個:

./bin/spark-submit \ 
    --class org.apache.spark.examples.SparkPi \ 
    --master spark://${yourip}:7077 \ 
    --executor-memory 5G \ 
    /path/to/examples.jar \ 
    1000 

如果您不希望rconnect直接集羣,可以使jar文件並通過​​無需連接羣集部署 - 這video-tutorial展示瞭如何使它。 HTH

+0

因此,在正確配置了Spark Master和2個節點(我可以在它提供的Web前端中看到它們)後,我必須始終執行一次spark submit ?.我不明白你的意思,「因此你可以用intellij編寫代碼,並將你的代碼繪製到遠程集羣中」。這是否意味着我總是必須從intellij創建一個jar並將其上傳到服務器並執行spark-submit事情?我不能在本地編寫代碼並直接從ide對集羣執行(通過按運行),就像使用其他語言一樣?提前致謝。 – Notbad

+0

@Notbad如果你想在spark-cluster上運行你的代碼並從IDE啓動任何東西,你必須在你的SparkConf中設置你的集羣的配置 - 當然,它可以是遠程機器上的一個集羣,你只需要指定ip地址。 –

1

我想你正在嘗試使用IntelliJ調試驅動程序。

您可以在客戶端模式下'spakr-submit'應用程序,然後使用IntelliJ IDE連接到驅動程序。