2016-03-03 58 views
3

我已經看到此問題How to implement custom job listener/tracker in Spark?並檢查了源代碼以瞭解如何獲取每個作業的階段數,但是有沒有方法可以以編程方式跟蹤已完成的作業的百分比一個Spark應用程序?Spark應用程序中的作業總數

我大概可以獲得聽衆完成的作業數量,但是我缺少將要運行的作業總數。

我想跟蹤整個應用程序的進度,它創造了不少工作,但我找不到任何地方。

@Edit:我知道有一個爲獲得所有應用程序的工作,但一個REST端點:我寧願不使用REST,但得到它的應用程序本身(在AWS EMR運行火花

  1. /紗線 - 得到的地址可能是可行的,但我寧願不這樣做)
  2. REST端點似乎只返回正在運行/完成/失敗,因此不是總數的作業。
+0

你有它的用戶界面在:http:// master-host:4040 –

+0

@AvihooMamka我需要以編程方式得到它,我的用戶無法訪問該用戶界面,所以我需要顯示在我的進展應用 –

+0

試試這也許:http://stackoverflow.com/questions/27165194/how-to-get-spark-job-status-from-program –

回答

0

經過源代碼有點我猜想沒有辦法看到前面會有多少工作會有,因爲我找不到任何地方,Spark會做這樣的分析預先(如作業提交每個行動都是獨立的Spark從一開始就沒有一個大的圖片)。

這種使得由於星火如何劃分工作入讀出:

  • 工作 - 這是開始時它的驅動程序節點上運行的代碼遇到動作(即collect()take()等等)並且應該計算一個值並將其返回給驅動程序
  • 階段 - 其由任務組成,其間沒有da TA洗牌需要
  • 任務 - 可以並行工作器節點上運行相同類型的計算

所以我們需要知道的階段和任務前期單個任務,以創建DAG,但我們不一定需要創建DAG的工作,我們可以創建它們「隨我走」。

相關問題