2016-08-18 54 views
0

有一種方法可以告訴spark在單個任務失敗後繼續作業嗎?火花 - 任務失敗後繼續作業處理

甚至更​​好: 只有當某個百分比的任務失敗時,我們才能配置一個作業失敗嗎?

我的方案是這樣的: 我使用pyspark來做一些並行計算。 我有一份工作是由成千上萬的任務組成的(這些任務或多或少是相互獨立的 - 我可以讓一些失敗)。 1任務失敗(拋出異常),並且在此任務重試幾次後,整個作業將中止。

有沒有辦法改變這種(奇怪的)行爲?

+1

拋出什麼異常?我在想,如果你知道有些任務可能會失敗,你可以編寫你的火花代碼來處理這個問題。當某些事情非常錯誤時,任務只應該失敗 - 例如,如果您使用的內存過多。 –

+0

這就是我要做的。引發的異常是由於其他程序員的錯誤而引起的:-) 我更喜歡基礎結構將處理這個問題,而不是我,因爲失敗的任務可以顯示在用戶界面等。 我想我沒有選擇,但自己接受例外,並以此爲前提進行處理。 –

+0

我不認爲依靠羣集來處理已知/未知的錯誤是一個好主意。不能保證結果的正確性。 – ShuaiYuan

回答

2

不,火花上沒有這樣的功能。 有一個開放的吉拉票(SPARK-10781),但我沒有看到任何行動。

你可以在mapreduce中使用配置文件mapreduce.map.failures.maxpercent and mapreduce.max.reduce.failures.percent

+0

哇 - 那是不可思議的。它幾乎是一個展示我的火花塞。 這是一個很大的 - 不是沒有。 –

+0

另外,mapreduce不適合我。我正在爲一些對Java一無所知的Python開發人員構建一個基礎 –