ResourceManager(RM)負責跟蹤叢集中的資源,并排程應用程式(例如MapReduce作業)。 在Hadoop 2.4之前,ResourceManager是紗線叢集中的單一故障點。 高可用性特性以活動/備用資料總管對的形式添加備援,以删除此故障點。
NodeManagers和用戶端在RM關閉期間将保持對RM的輪詢,直到RM啟 動。當啟動後,RM将通過心跳機制向正在與其會話的NodeManager和 ApplicationMasters發送同步指令。目前NodeManager和ApplicationMaster 處理該指令的方式為:NodeManager将殺死它管理的所有容器然後向RM 重新注冊,對于RM來說,這些重新注冊的NodeManager與新加入的 NodeManager相似。ApplicationMasters在接收到RM的同步指令後,将會 關閉。在RM重新開機後,從狀态存儲中加載應用中繼資料和認證資訊并放入 記憶體後,RM将為每個還未完成的應用建立新的嘗試。正如之前描述的 ,此種方式下之前正在運作的應用程式的工作将會丢失,因為它們已經 被RM在重新開機後使用同步指令殺死了
ResourceManager重新開機可以劃分為兩個階段。
第一階段,
增強的ResourceManager(RM)将應用程式的狀态和其它認證資訊儲存到一個插入式的狀态存儲中。
RM重新開機時将從狀态存儲中重新加載這些資訊,然後重新開始之前正在運作的應 用程式,使用者不需要重新送出應用程式。
第二階段,
重新開機時通過從NodeManagers讀取容器的狀态和從ApplicationMasters讀取容器的請求,集中重構RM的運作狀态。與第一階段不同的是,在第二階段中,之前正在運作的應用 程式将不會在RM重新開機後被殺死,是以應用程式不會因為RM中斷而丢失工作。