Hadoop MapReduce容错性分析
1. JobTracker
暫無容錯機制,掛掉之后,需要人工介入,重啟。
用戶可以通過配置一些參數,以便JobTracker重啟后,讓所有作業恢復運行。用戶配置若干參數后,JobTracker重啟前,會在history log中記錄各個作業的運行狀態,這樣在JobTracker關閉后,系統中所有數據目錄(包括各種臨時目錄)均會被保留,待JobTracker重啟之后,JobTracker自動重新提交這些作業,并只對未運行完成的task進行重新調度,這樣可避免已經計算完的task重新計算。具體配置方法可參考:http://www.cnblogs.com/MGGOON/archive/2012/02/23/2365055.html
有人提出,TaskTracker重啟后,它上面的作業也可以自動恢復,具體參考:
https://issues.apache.org/jira/browse/MAPREDUCE-2171
2. TaskTracker
(1)匯報心跳
mapred.tasktracker.expiry.interval,默認值是10min
當TaskTracker超過mapred.tasktracker.expiry.interval時間間隔沒有向JobTracker匯報心跳,則JobTracker視之為死亡,并將之從調度池中剔除。
(2)Exclude nodes
用戶可以在mapred.hosts.exclude或者mapred.hosts中指定一個文件,該文件一行是一個tasktracker host,表示這些節點不允許接入集群,也就是不會被分配task。該文件在Hadoop-0.21.0版本中可以動態加載。
(3)黑名單(blacklist)
health-check script腳本判斷該節點是健康,不健康,直接加入黑名單。
具體參考:?http://hadoop.apache.org/common/docs/current/cluster_setup.html?中的“Configuring the Node Health Check Script”一節。
(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可被分布不到不同磁盤目錄中,減少單個磁盤日志寫入壓力。
具體參考:https://issues.apache.org/jira/browse/MAPREDUCE-2657
原創文章,轉載請注明:?轉載自董的博客
本文鏈接地址:?http://dongxicheng.org/mapreduce/hadoop-mapreduce-failure-tolerance/
總結
以上是生活随笔為你收集整理的Hadoop MapReduce容错性分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YARN/MRv2 Resource M
- 下一篇: 140个Google面试问题