1. 程式人生 > >《Hadoop權威指南》學習筆記(四)

《Hadoop權威指南》學習筆記(四)

1 Yarn的MapReduce工作流程

經典的MapReduce頂層包括5個獨立實體 

  • 客戶端,提交MapReduce作業
  • YARN資源管理器,協調叢集上計算資源分配
  • YARN節點管理器,負責啟動和監視叢集中的container
  • MapReduce應用程式master,協調執行中的作業任務
  • 分散式檔案系統(一般為HDFS),與其他實體間共享作業檔案

提交作業的步驟,一張圖就可以了,照著書上畫的,加了一些解釋,紅色框表示節點

第7個步驟之後,如果該任務很小,master則會決定在當前節點執行這個任務,稱為uber任務

任務會向master程序彙報當前任務程序,而客戶端會以給定時間間隔從master查詢作業狀態

 2 Yarn失敗

 Yarn中的失敗包括:

  • 任務執行失敗
  • master
  • 節點管理器
  • 資源管理器

2.1 任務執行失敗

master程序會注意到任務失敗並嘗試再次啟動任務,最大嘗試次數由mapreduce.map.maxattemps設定。如果作業失敗次數超過mapreduce.map.failures.maxpercent或者mapreduce.reduce.failures.maxpercent,就判定作業失敗

2.2 master執行失敗

yarn.resourcemanager.am.max-retries設定允許master失敗的次數,預設為1次

master向資源管理器傳送心跳,master失敗後資源管理器在一個新容器總啟動master。如果設定了yarn.app.mapreduce.am.job.recovery.enable為true,master可以恢復之前執行的任務狀態

客戶端會快取master的地址,如果請求超時會向資源管理器請求新的master地址

2.3 節點管理器執行失敗

節點管理器也會向資源管理器傳送心跳,yarn.resourcemanager.nm.liveness-monitor.expiry-interval-ms決定資源管理器認為節點管理器失敗的等待時間

如果應用程式的執行失敗次數過高,節點管理器可能被master拉黑,mapreduce.job.maxtaskfailures.per.tracker設定拉黑閾值

2.4 資源管理器執行失敗

那就歇菜了(大誤)

管理員啟動一個新的資源管理器,並恢復儲存的狀態,資源管理器只儲存節點管理器和master,任務由master管理,這樣有助於降低資源管理器的壓力