2013-07-04 40 views
3

默認情況下,如果映射器/ reducer失敗,hadoop會嘗試運行其他實例,如果失敗4次(默認值),hadoop會將完成的MR作業標記爲失敗。是否有任何屬性可以定義失敗的映射器閾值

我正在處理一些原始數據,如果MR作業無法處理30%的數據,我很確定。如果有30%的映射器出現故障,我可以設置任何配置,這樣就不會中止作業並輸出剩餘70%的數據。我可以處理我的代碼中的異常,並保持計數器中的失敗和成功記錄,但我想知道是否有任何這樣的配置在hadoop

+0

[跳繩不良記錄(https://www.inkling.com/read/hadoop-definitive-guide-tom-white-3rd/chapter-6/task-execution#ef742852835568b3b0d695686f52642c)可能對你有幫助。但現在沒有這樣的門檻。 – zsxwing

+0

另一種解決方案是使用自己的計數器來計算失敗百分比。使用try-catch塊捕獲錯誤並在catch塊中增加計數器。 –

回答

4

謝謝!我從權威指南得到了答案。

對於某些應用程序,這是不希望中止工作,如果幾個 任務失敗,因爲它可能可以使用作業 的結果,儘管一些故障。在這種情況下,任務 允許失敗而不觸發作業失敗的最大百分比可以設置爲 作業。 Map任務和減少任務是獨立控制的, 使用mapreduce.map.failures.maxpercent和 mapreduce.max.reduce.failures.percent屬性。

相關問題