一張圖讀懂yarn


yarn即MapReduce 2.0 。相比MR 1.0,yarn架構中的各個角色職責單一,分工明確,在性能,穩定性上有所提升。

yarn架構圖

在yarn中有如下幾個概念:

  • ResourceManager
  • NodeManager
  • Secheduler
  • ApplicationManager
  • ApplicationMaster
  • Container

ResourceManager和NodeManager對應實體的物理節點,分別映射到yarn的主節點和計算節點。

1、ResourceManager

ResourceManager節點的功能由Secheduler和ApplicationManager協調完成。

其中ApplicationManager職責如下

  1. 負責接收客戶端提交的job
  2. 判斷啟動該job的ApplicationMaster所需的資源
  3. 監控ApplicationMaster的狀態,在其失敗的時候重啟ApplicationMaster

Secheduler負責僅僅提供一個調度算法調度ApplicationManager提交的任務,他不提供失敗重啟和任何監控功能。調度算法可以自定義。yarn針對不同的場景提供了三種Secheduler實現:FIFO Scheduler ,Capacity scheduler,Fair Scheduler(請參照調度器詳解)。

2、NodeManager

NodeManager對應集群中的計算節點,但是他的功能僅僅只是抽象本節點的資源(如cpu,內存,磁盤,網絡)并且定時向ResourceManager的Secheduler匯報。

Container是一組資源的集合,一個container一般用來執行一個task。

ApplicationMaster是job的生命周期的管理者,負責整個job執行過程的監控。

前面提到ApplicationManager會判斷啟動ApplicationMaster所需的資源,之后提交給Secheduler,Secheduler將這些資源封裝成一個Container,然后根據調度算法在某一個NodeManager上啟動ApplicationMaster(當然它會消耗掉該NodeManager的資源)。

ApplicationMaster啟動之后會計算job所需要的資源,并且向Secheduler申請這些資源,NodeManager分配完成這些任務的container之后,會由ApplicationMaster來監控這些container的狀態,如果失敗就回收資源重新申請,如果成功就釋放資源,當任務執行完成之后匯報Secheduler,Secheduler回收資源并且向ResourceManager返回執行結果,整個任務處理完畢。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容