Hadoop ApplicationMaster

2022-02-28 09:25 更新

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

具體功能描述:

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

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

如何計(jì)算資源需求

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

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

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號