2017-06-05 96 views
0

用例: 我在防火牆後面,我有一個可以訪問的遠程Spark羣集,但是這些機器無法直接連接到我。在防火牆後向Apache-Spark提交作業

火花doc規定是必要的工作人員,以便能夠達到的驅動程序:

由於羣集上的驅動程序調度任務,應該運行 靠近工作節點,最好在同一個局域網上。 如果您想遠程向集羣發送請求,最好 向驅動程序打開一個RPC,並讓它從附近的 提交操作,而不是遠離工作節點運行驅動程序。

建議的解決方案是讓集羣上的服務器進程在RPC上運行,並讓它在本地執行spark驅動程序。

這樣的程序是否已經存在?這樣的過程應該管理1 + RPC,返回異常和處理日誌。

此外,在這種情況下,我的本地程序或火花驅動程序誰必須創建SparkContext?

注: 我有一個獨立的集羣

解決方法1

一個簡單的方法是使用集羣模式(類似於--deploy-mode cluster)爲獨立的集羣,但是doc說:

目前,獨立模式不支持Python 應用程序的集羣模式。

回答

1

只是幾個選項:

  • 連接到使用ssh羣集節點上,啓動screen,提交星火申請,回去檢查結果。
  • 在集羣上部署中間件,如Job Server,Livy或Mist,並將其用於提交。
  • 在您的羣集上部署筆記本(Zeppelin,Toree)並從筆記本提交應用程序。
  • 固定設置spark.driver.portssh通過其中一個羣集節點轉發所有連接,使用其IP爲spark.driver.bindAddress