2017-01-03 51 views
0

我有一個java類,它可以通過spark(使用1.6)來管理作業並執行它們。 我正在使用API​​ - sparkLauncher。 startApplication(SparkAppHandle.Listener ...監聽器)以監視作業的狀態。 問題是我搬到了一個真正的集羣環境中工作,並且這種方式無法工作,當主人和工作人員不在同一臺機器上,因爲內部實現僅使用本地主機(環回)來打開一個端口爲工作人員綁定。 API sparkLauncher.launch()可用,但不會讓我監視狀態。 使用java代碼的集羣環境的最佳實踐是什麼? 我也看到隱藏Rest API的選項,它足夠成熟嗎?我是否應該以火花的方式啓用它(即使端口從外部打開,我的訪問被拒絕)?通過羣集模式下的java提交併監控spark作業

回答

0

REST API

除了在UI觀看的指標,它們也可作爲JSON。這爲開發人員提供了一種爲Spark創建新的可視化和監視工具的簡單方法。 JSON可用於正在運行的應用程序和歷史記錄服務器中。端點安裝在/ api/v1。例如,對於歷史記錄服務器,它們通常可以通過http://:18080/api/v1進行訪問,對於正在運行的應用程序,則可以通過http://localhost:4040/api/v1進行訪問。

更多細節你可以找到here.

+0

感謝您的回覆。我試圖使用隱藏的rest API,但是當從不同的機器執行時,Spark主機,我得到403,端口在機器中打開,你知道與它有關的火花安全配置嗎? – user601929

+0

請檢查您是否可以訪問該端口。 你可以嘗試這樣的: telnet server.hostname port –

+0

我不能從外面,但在安全組的端口是開放的,它應該從火花配置以某種方式啓用? – user601929

0

每個SparkContext都會默認在端口4040上啓動Web UI,該Web UI會顯示有關應用程序的有用信息。這包括:

  • 調度階段和任務
  • RDD大小和內存使用情況
  • 環境信息的彙總列表。
  • 有關運行執行人

信息您可以通過簡單地在Web瀏覽器中打開http://driver-node:4040訪問此接口。如果多個SparkContexts在同一主機上運行,​​它們將綁定到以4040(4041,4042等)開頭的連續端口。

更多細節,你可以找到here.

相關問題