2017-03-24 41 views
0

我在scala spark作業代碼中有一個簡單的if語句,如果false我想停止工作並標記它失敗了。我希望紗線用戶界面以失敗的狀態顯示火花工作,但到目前爲止我所做的所有工作都已停止工作,但僅在紗線用戶界面上成功完成後才顯示。在一個scala spark工作中,如何運行紗線,如何使工作失敗,紗線顯示失敗狀態

if(someBoolen) { 
     //context.clearAllJobs() 
     //System.exit(-1) 
     //etc, nothing so far, stops the job and show as failed in the yarn UI 
    } 

任何幫助將是偉大的。

+0

爲什麼你不只是拋出新的IllegalStateException(「壞業力,現在放棄」);'? –

回答

1

拋出異常(而不捕獲它)會導致進程失敗。

if(someBoolen) { 
    throw new Exception("Job failed"); 
} 
+0

也許我提交不正確的紗線,但即使拋出異常和火花工作失敗,紗線顯示工作成功 – JediKid

+0

@JediKid你確定你沒有抓到它的任何地方,也許登錄到你的主要或什麼? – puhlen

+0

所以在玩過之後,我發現它可能是我通過spark-submit提交工作的方式。如果我使用--deploy-mode集羣進行部署,則yarn將顯示作業失敗,但如果沒有--deploy-mode集合,即使失敗,它也會始終表示作業已成功。 – JediKid