暫無容錯機制,掛掉以後,須要人工介入,重啓。 node
用戶能夠經過配置一些參數,以便JobTracker重啓後,讓全部做業恢復運行。用戶配置若干參數後,JobTracker重啓前,會在history log中記錄各個做業的運行狀態,這樣在JobTracker關閉後,系統中全部數據目錄(包括各類臨時目錄)均會被保留,待JobTracker重啓以後,JobTracker自動從新提交這些做業,並只對未運行完成的task進行從新調度,這樣可避免已經計算完的task從新計算。 算法
配置項 |
默認值 | 描述 |
mapred.jobtracker.restart.recover |
false |
true時jobtracker重啓以前運行的job能夠在jobtracker restart以後恢復,false則須要從新運行。 |
mapred.jobtracker.job.history.block.size |
3145728 |
保存Job歷史日誌文件的大小,job的恢復就是使用這些歷史日誌。 |
hadoop.job.history.location |
${hadoop.log.dir}/history |
Job history存儲位置 |
(4)灰名單(graylist)
採用了啓發式算法發現的有問題的節點,加入灰名單。
mapred.jobtracker.blacklist.fault-timeout-window:默認是3小時,時間窗口,計算該時間內失敗的task個數
若是知足如下條件,則將tasktracker加入灰名單:
mapred.max.tracker.blacklists:默認是4,bad tasktracker閾值,當一個tasktracker在時間窗口內失敗個數超過該閾值,則認爲該tasktracker是bad tasktracker
mapred.cluster.average.blacklist.threshold,默認是0.5,若是一個bad tasktracker失敗的task個數超過了全部tasktracker平均值的mapred.cluster.average.blacklist.threshold倍,則加入灰名單,不只會自動加入黑名單。
從新啓動該TaskTracker,就可以將它從黑名單和灰名單中刪除。
3. Job
mapred.max.tracker.failures:一個做業在某個tasktracker上失敗的task個數超過該值,則該tasktracker被加到該job的blacklist中,今後再也不往該tasktracker分配該job的task.
4. Task
mapred.map.max.attempts:每一個map task最大嘗試次數
mapred.reduce.max.attempts:每一個reduce task最大嘗試次數
5. Record
mapred.skip.map.max.skip.records:跳過壞記錄條數(數據格式不對,空紀錄等)。當遇到壞記錄時,Hadoop嘗試跳過的最多記錄條數。
6. 磁盤
用戶能夠配在mapred.local.dir參數配置多個磁盤目錄,將map task中間結果分不到不一樣磁盤上,加強容錯性。Map task臨時結果將被輪詢寫到這些目錄中,以免某個磁盤目錄數據過多。(輪詢的方式仍然可能致使某個磁盤目錄數據過多,最好的策略是每次選擇數據最少的磁盤目錄寫入,採用小頂堆)。
用戶日誌userlogs可被分佈不到不一樣磁盤目錄中,減小單個磁盤日誌寫入壓力。
oop