大資料入門:Hadoop Yarn元件基礎解析

加米穀大資料張老師發表於2020-11-26

在Hadoop框架當中,Yarn元件是在Hadoop2.0之後的版本開始引入,主要是為了解決資源管理和排程的相關問題,是在大資料平臺的實際運用當中,根據實際需求而引入的解決方案。今天的大資料入門分享,我們就來對Hadoop Yarn元件做個簡單的基礎解析。

Yarn簡介

Yarn是Yet Another Resource Negotiator的縮寫,在Hadoop生態當中,作為通用的資源管理系統與排程平臺,去實現CPU、記憶體、磁碟、網路等資源進行統一管理與拆分,以容器的形式,為上層應用提供統一的資源服務。

Yarn主要包含四大元件,分別為ResourceManager、NodeManager、ApplicationMaster、Container。

Yarn核心概念

1、ResourceManager

ResourceManager是Yarn叢集的Master程式,主要負責整個叢集資源的統一管理和分配,當我們提交一個作業給Yarn,實際上就是提交給了ResourceManager,並由它協調分配相應的資源,這樣程式才能得以執行。

2、NodeManager

NodeManager是Yarn叢集的Slave程式,主要負責所在節點的資源和任務管理,它是每臺機器的框架代理,管理著容器的生命週期,監視其資源使用情況(CPU,記憶體,磁碟,網路)並將其報告給ResourceManager。

ResourceManager和NodeManager共同構成了資料計算框架,使Yarn具備了資源管理和協調能力。

3、ApplicationMaster

ApplicationMaster實際上是特定計算框架的一個例項,每種計算框架都有自己的ApplicationMaster實現,負責與ResourceManager協商資源,並和NodeManager協同來執行和監控Container。

4、Container

Container是一個動態資源分配單位,它將記憶體、CPU、磁碟、網路等資源封裝在一起,從而限定每個任務使用的資源量。ApplicationMaster和Container組成了分散式計算的框架基礎,分散式計算的程式碼就是在這二者程式內執行。

Yarn工作原理

Yarn的加入,彌補了經典Hadoop模型在擴充套件性,效率上和可用性等方面存在的明顯不足,可以說它是Apache對Hadoop1進行升級改造。

Yarn的引入主要兩個重要的變更:一個是HDFS的NameNode可以以叢集的方式部署,增強了NameNode水平的擴充套件能力和高可用性,分別是HDFS Federation與HA,二是MapReduce將Hadoop1時代的JobTracker中的資源管理和任務生命週期管理(包括定時觸發及監控),拆分兩個獨立的元件(Resource Manager和Application Master),並更名為Yarn(yet Another Resource Negotiator)。

Yarn仍然是master/slave的架構,其中ResourceManager充當了master的角色,NodeManager充當了slave的角色,Resource Manager負責對多個NodeManager的資源進行統一管理和排程。

Yarn執行機制

由於Yarn並不清楚使用者提交的程式的執行機制,只提供運算資源的排程,Yarn其實就與執行的使用者程式完全解耦,就意味著Yarn上可以執行各種型別的分散式運算程式,包括Mapreduce、Storm、Spark……

Yarn就成為一個通用的資源排程平臺,企業中以前存在的各種運算叢集都可以整合在一個物理叢集上,提高資源利用率,方便資料共享Yarn工作機制。

關於大資料入門,Hadoop Yarn元件基礎解析,以上就為大家做了簡單的介紹了。Hadoop在大資料技術生態當中的重要性不言而喻,而Yarn作為Hadoop的核心元件之一,也需要重點掌握。

相關文章