華為云計算 云知識 YARN是什么
YARN是什么

為了實現(xiàn)一個Hadoop集群的集群共享、可伸縮性和可靠性,并消除早期MapReduce框架中的JobTracker性能瓶頸,開源社區(qū)引入了統(tǒng)一的資源管理框架YARN。

YARN是將JobTracker的兩個主要功能(資源管理和作業(yè)調(diào)度/監(jiān)控)分離,主要方法是創(chuàng)建一個全局的ResourceManager(RM)和若干個針對應(yīng)用程序的ApplicationMaster(AM)。

說明:應(yīng)用程序是指傳統(tǒng)的MapReduce作業(yè)或作業(yè)的DAG(有向無環(huán)圖)。

YARN結(jié)構(gòu)

YARN分層結(jié)構(gòu)的本質(zhì)是ResourceManager。這個實體控制整個集群并管理應(yīng)用程序向基礎(chǔ)計算資源的分配。ResourceManager將各個資源部分(計算、內(nèi)存、帶寬等)精心安排給基礎(chǔ)NodeManager(YARN的每節(jié)點代理)。ResourceManager還與Application Master一起分配資源,與NodeManager一起啟動和監(jiān)視它們的基礎(chǔ)應(yīng)用程序。在此上下文中,Application Master承擔(dān)了以前的TaskTracker的一些角色,ResourceManager承擔(dān)了JobTracker的角色。

Application Master管理一個在YARN內(nèi)運行的應(yīng)用程序的每個實例。Application Master負(fù)責(zé)協(xié)調(diào)來自ResourceManager的資源,并通過NodeManager監(jiān)視容器的執(zhí)行和資源使用(CPU、內(nèi)存等的資源分配)。

NodeManager管理一個YARN集群中的每個節(jié)點。NodeManager提供針對集群中每個節(jié)點的服務(wù),從監(jiān)督對一個容器的終生管理到監(jiān)視資源和跟蹤節(jié)點健康。MRv1通過插槽管理Map和Reduce任務(wù)的執(zhí)行,而NodeManager管理抽象容器,這些容器代表著可供一個特定應(yīng)用程序使用的針對每個節(jié)點的資源。