鍍金池/ 教程/ 大數(shù)據(jù)/ YARN - Failover
YARN - Failover
MapReduce - Shuffle
Hadoop配置
MapReduce - 讀取數(shù)據(jù)
Hadoop - MapReduce
YARN - Container
Hadoop 測(cè)試
MapReduce - Mapper
Hadoop - 參考
YARN - ResourceManager
HDFS - 可靠性
HDFS - 讀文件
Hadoop - 簡(jiǎn)介
YARN - ApplicationMaster
Hadoop - IO
Hadoop 監(jiān)控
MapReduce - 編程
Hadoop - YARN
Hadoop - HDFS
HDFS - 命令工具
HDFS - 寫文件
YARN - NodeManager
Hadoop安裝

YARN - Failover

失敗類型

  1. 程序問(wèn)題
  2. 進(jìn)程崩潰
  3. 硬&#x#x4EF6;問(wèn)題

失敗處理

任務(wù)失敗

  1. 運(yùn)行時(shí)異?;蛘逬VM退出都會(huì)報(bào)告給ApplicationMaster
  2. 通過(guò)心跳來(lái)檢查掛住的任務(wù)(timeout),會(huì)檢查多次(可配置)才判斷該任務(wù)是否失效
  3. 一個(gè)作業(yè)的任務(wù)失敗率超過(guò)配置,則認(rèn)為該作業(yè)失敗
  4. 失敗的任務(wù)或作業(yè)都會(huì)有ApplicationMaster重新運(yùn)行

ApplicationMaster失敗

  1. ApplicationMaster定時(shí)發(fā)送心跳信號(hào)到ResourceManager,通常一旦ApplicationMaster失敗,則認(rèn)為失敗,但也可以通過(guò)配置多次后才失敗
  2. 一&##x65E6;ApplicationMaster失敗,ResourceManager會(huì)啟動(dòng)一個(gè)新的ApplicationMaster
  3. 新的ApplicationMaster負(fù)責(zé)恢復(fù)之前錯(cuò)誤的ApplicationMaster的狀態(tài)(yarn.app.mapreduce.am.job.recovery.enable=true),這一步是通過(guò)將應(yīng)用運(yùn)行狀態(tài)保存到共享的存儲(chǔ)上來(lái)實(shí)現(xiàn)的,ResourceManager不會(huì)負(fù)責(zé)任務(wù)狀態(tài)的保存和恢復(fù)
  4. Client也會(huì)定時(shí)向ApplicationMaster查詢進(jìn)度和狀態(tài),一旦發(fā)現(xiàn)其失敗,則向ResouceManager詢問(wèn)新的ApplicationMaster

NodeManager失敗

  1. NodeManager定時(shí)發(fā)送心跳到ResourceManager,如果超過(guò)一段時(shí)間沒有收到心跳消息,ResourceManager就會(huì)將其移除
  2. 任何運(yùn)行在該NodeManager上的#x7684;任務(wù)和ApplicationMaster都會(huì)在其他NodeManager上進(jìn)行恢復(fù)
  3. 如果某個(gè)NodeManager失敗的次數(shù)太多,ApplicationMaster會(huì)將其加入黑名單(ResourceManager沒有),任務(wù)調(diào)度時(shí)不在其上運(yùn)行任務(wù)

ResourceManager失敗

  1. 通過(guò)checkpoint機(jī)制,定時(shí)將其狀態(tài)保存到磁盤,然后失敗的時(shí)候,重新運(yùn)行
  2. 通過(guò)zookeeper同步狀態(tài)和實(shí)現(xiàn)透明的HA

可以看出,一般的錯(cuò)誤處理都是由當(dāng)前模塊的父模塊進(jìn)行監(jiān)控(心跳)和恢復(fù)。而最頂端的模塊則通過(guò)定時(shí)保存、同步狀態(tài)和zookeeper來(lái)?#x5B9E;現(xiàn)HA

上一篇:MapReduce - Shuffle下一篇:HDFS - 寫文件