談一談你對yarn 的理解?(大數據面試題系列!!!)

YARN 是hadoop 的集羣資源管理器。Yarn 在Hadoop2 中被引入,是爲了要改善MapReduce1 的實現,但它具有足夠的通用性,同樣也支持其他的分佈式計算模式。

MapReduce1 的實現機制

MapReduce 包括幾個高級組件。主進程JobTracker是所有MapReduce 作業的信息交流中心。每個節點都有一個TaskTracker進程,管理相應節點的任務。TaskTracker 與JobTracker 通信,並受其控制。

JobTracker 負責工作節點的資源管理,監控資源的使用情況,管理作業的生命週期。

TaskTracker 的職責是根據JobTracker 的命令啓動/清除任務,並且週期性的向JobTracker 彙報任務的狀態信息。

yarn 應用運行機制

YARN 的基本思想就是將JobTracker 的兩大主要職能:資源管理、作業的調度監控分爲兩個獨立的進程。一個是全局的ResourceManager,另一個是每一個應用對應的ApplicationMaster。

ResourceManager 是一個純粹的調度器,它根據應用程序的資源請求嚴格限制系統的可用資源。在保證容量、公平性及服務器等級的前提下,優化集羣資源利用率,即讓所有的資源都能被充分利用。

ApplicationMaster 負責與ResourceManager 協商資源,並和NodeManager 進行協同工作來執行容器和監控容器的狀態。

NodeManager 是YARN 節點上的工作進程,管理集羣中獨立的計算節點。其職責包括啓動應用程序的容器,監控它們的資源使用情況,並且報告給ResourceManager。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章