Hadoop ApplicationMaster

2022-02-28 09:25 更新

單個作業(yè)的資源管理和任務監(jiān)控

具體功能描述:

  1. 計算應用的資源需求,資源可以是靜態(tài)或動態(tài)計算的,靜態(tài)的一般是Client申請時就指定了,動態(tài)則需要ApplicationMaster根據(jù)應用的運行狀態(tài)來決定
  2. 根據(jù)數(shù)據(jù)來申請對應位置的資源(Data Locality)
  3. 向ResourceManager申請資源,與NodeManager交互進行程序的運行和監(jiān)控,監(jiān)控申請的資源的使用情況,監(jiān)控作業(yè)進度
  4. 跟蹤任務狀態(tài)和進度,定時向ResourceManager發(fā)送心跳消息,報告資源的使用情況和應用的進度信息
  5. 負責本作業(yè)內(nèi)的任務的容錯

ApplicationMaster可以是用任何語言編寫的程序,它和ResourceManager和NodeManager之間是通過ProtocolBuf交互,以前是一個全局的JobTracker負責的,現(xiàn)在每個作業(yè)都一個,可伸縮性更強,至少不會因為作業(yè)太多,造成JobTracker瓶頸。同時將作業(yè)的邏輯放到一個獨立的ApplicationMaster中,使得靈活性更加高,每個作業(yè)都可以有自己的處理方式,不用綁定到MapReduce的處理模式上

如何計算資源需求

一般的MapReduce是根據(jù)block數(shù)量來定Map和Reduce的計算數(shù)量,然后一般的Map或Reduce就占用一個Container

如何發(fā)現(xiàn)數(shù)據(jù)的本地化

數(shù)據(jù)本地化是通過HDFS的block分片信息獲取的

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號