1

驅動程序(作爲運行主節點的程序)必須位於主節點上嗎?驅動程序是否必須位於主節點上(是/否)? Apache-Spark

例如,如果我使用一個主人和兩個工人來設置ec2,那麼具有主代碼的代碼是否必須從主EC2實例執行?

如果答案爲否,那麼設置驅動程序位於ec2主節點之外的系統的最佳方式是什麼?(可以說,Driver是從我的計算機運行,而Master和Workers在EC2上)? 我是否總是必須使用spark-submit,或者我可以從IDE或IntelliJ IDEA等IDE中執行此操作嗎?

如果答案是YES,那麼最好的參考是什麼來學習更多關於它(因爲我需要提供某種證明)?

非常感謝您的回答,我們將非常感謝您的參考!

回答

5

不,它不一定要在主人身上。

使用​​可以使用deploy-mode來控制你的驅動器運行(作爲client,運行提交(可以是主或其他機器上),或者作爲cluster,對工人)。

工作人員和司機之間有network communication,所以你希望它與工人「接近」,絕不會跨越廣域網。

您可以run from inside副本(spark-shell)可以從您的IDE訪問。如果您使用的是像Clojure這樣的動態語言,那麼您也可以創建一個SparkContext(通過master)引用本地羣集或要將作業添加到的羣集,然後通過repl進行編碼。在實踐中,這並非易事。

+0

謝謝。我如何設置系統以避免火花提交,但是隻需要使用Eclipse或IntelliJ IDEA之類的IDE來完成與spark-submit一樣的工作? –

+1

你不能這樣做! – eliasah

+0

@elisah,謝謝。我希望這適用於羣集和客戶端模式。任何參考(只是爲了展示我的老闆在工作)? –