Jeff Markham:Hadoop YARN的高可用性
原創(chuàng)【51CTO獨(dú)家特稿】在2013 China Hadoop Summit峰會(huì)上,來自Hortonworks的CTO,Jeff先生為我們分享了YARN在大數(shù)據(jù)方面的應(yīng)用。
Jeff首先談到了YARN對(duì)比MESOS的一些優(yōu)勢(shì)。比如架構(gòu)更加簡(jiǎn)單,用戶可以不用過于復(fù)雜的設(shè)計(jì)工程。在可擴(kuò)展性方面,YARN也有自己的優(yōu)勢(shì)。Yarn 框架相對(duì)于老的 MapReduce 框架什么優(yōu)勢(shì)呢?我們可以看到:
這個(gè)設(shè)計(jì)大大減小了 JobTracker(也就是現(xiàn)在的 ResourceManager)的資源消耗,并且讓監(jiān)測(cè)每一個(gè) Job 子任務(wù) (tasks) 狀態(tài)的程序分布式化了,更安全、更優(yōu)美。在新的 Yarn 中,ApplicationMaster 是一個(gè)可變更的部分,用戶可以對(duì)不同的編程模型寫自己的 AppMst,讓更多類型的編程模型能夠跑在 Hadoop 集群中,可以參考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
對(duì)于資源的表示以內(nèi)存為單位 ( 在目前版本的 Yarn 中,沒有考慮 cpu 的占用 ),比之前以剩余 slot 數(shù)目更合理。 老的框架中,JobTracker 一個(gè)很大的負(fù)擔(dān)就是監(jiān)控 job 下的 tasks 的運(yùn)行狀況,現(xiàn)在,這個(gè)部分就扔給 ApplicationMaster 做了,而 ResourceManager 中有一個(gè)模塊叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是監(jiān)測(cè) ApplicationMaster 的運(yùn)行狀況,如果出問題,會(huì)將其在其他機(jī)器上重啟。
Container 是 Yarn 為了將來作資源隔離而提出的一個(gè)框架。這一點(diǎn)應(yīng)該借鑒了 Mesos 的工作,目前是一個(gè)框架,僅僅提供 java 虛擬機(jī)內(nèi)存的隔離 ,hadoop 團(tuán)隊(duì)的設(shè)計(jì)思路應(yīng)該后續(xù)能支持更多的資源調(diào)度和控制 , 既然資源表示成內(nèi)存量,那就沒有了之前的 map slot/reduce slot 分開造成集群資源閑置的尷尬情況。