YARN動(dòng)搖了MapReduce對(duì)Hadoop的掌控
Hadoop被認(rèn)為是運(yùn)行在HDFS(分布式文件系統(tǒng))上的MapReduce。通過YARN,Hadoop 2.0擴(kuò)大了潛在應(yīng)用的數(shù)量。
Hadoop一直是各種或多或少整合了統(tǒng)一大數(shù)據(jù)架構(gòu)的開源創(chuàng)新的統(tǒng)稱。部分人認(rèn)為,Hadoop的核心是一個(gè)分布式文件系統(tǒng)(HDFS),然而HBase和Cassandra等一系列可替代HDFS的數(shù)據(jù)庫正在動(dòng)搖這一主張。
以往Hadoop有一個(gè)特殊的作業(yè)執(zhí)行層——MapReduce,其在一個(gè)或多個(gè)可替代的大型并行數(shù)據(jù)持久層上執(zhí)行,其中一個(gè)是HDFS。但是近期針對(duì)Hadoop推出的新一代執(zhí)行層,即YARN(另一種資源協(xié)調(diào)者)消除了MapReduce上Hadoop環(huán)境嚴(yán)格的從屬性。
關(guān)鍵的是,YARN消除了一個(gè)從一開始就在制約MapReduce作業(yè)執(zhí)行的瓶頸。在YARN出現(xiàn)之前,所有的MapReduce作業(yè)必須要通過一個(gè)后臺(tái)程序(即JobTracker)作為批處理程序運(yùn)行,這一制約限制了它們的擴(kuò)展性和處理速度。這些MapReduce制約迫使許多廠商自己想辦法提高速度,以避開MapReduce與生俱來的瓶頸,IBM的Adaptive MapReduce就是其中的代表。
所有的這些可能會(huì)讓人們想知道“Hadoop”與其他大數(shù)據(jù)與分析平臺(tái)和工具在“堆棧”上的區(qū)別。YARN是大數(shù)據(jù)發(fā)展的一個(gè)基礎(chǔ)性組件。YARN將傳統(tǒng)的Hadoop放到了一個(gè)可組合的、契合目的(fit-to-purpose)的平臺(tái)中,以處理數(shù)據(jù)管理、分析和交易計(jì)算等工作。
YARN將Hadoop轉(zhuǎn)變?yōu)橐粋€(gè)開源創(chuàng)新的初始定義所提及的通用分布式作業(yè)執(zhí)行層。雖然它們保留了對(duì)MapReduce API的向下兼容性,并繼續(xù)執(zhí)行MapReduce作業(yè),但是YARN引擎能夠執(zhí)行大量由其他語言所開發(fā)的作業(yè)。
重要的是,YARN能夠成為針對(duì)大數(shù)據(jù)的不同Apache開源創(chuàng)新的統(tǒng)一線程。正如美國(guó)InfoWorld.com網(wǎng)站近期所指出的:“最大的勝利在于,MapReduce自身成為了一種利用Hadoop挖掘大數(shù)據(jù)的可能方式。”
這是YARN的目標(biāo),不過要想實(shí)現(xiàn)這一目標(biāo)需要行業(yè)重新設(shè)計(jì)能夠與之協(xié)同工作的Hadoop堆棧和工具。Apache組織在其官方聲明中稱:“通過移植,任何分布式應(yīng)用都能夠在YARN上運(yùn)行。為了這一目的,Apache將維護(hù)一張與YARN兼容的應(yīng)用列表,例如Facebook正在使用的社交圖形分析系統(tǒng)Apache Giraph。其他部分也將如此。”
這聽起來雖然不錯(cuò),但是需要注意到相關(guān)的免責(zé)聲明:即“通過移植”的字眼。Apache組織在聲明中稱,YARN的測(cè)試將達(dá)到廠商將分析開發(fā)工具移植到符合YARN輸出工作的程度。將開發(fā)語言移植至YARN上并不是一件無關(guān)緊要的事情。
在整個(gè)行業(yè)和不同的Apache社區(qū)以及其他開源社區(qū)中,這是否將會(huì)持續(xù)發(fā)生?如果是的話,范圍有多大?這些因素將決定YARN,即Hadoop 2.0特定功能的接受程度??紤]到Hadoop 2.0保留了對(duì)MapReduce的向下兼容性,YARN需要讓MapReduce應(yīng)用了解最新的情況。這可能會(huì)大幅降低開發(fā)者接受這一新框架的速度。
此外,從大數(shù)據(jù)應(yīng)用開發(fā)所使用的替代語言(R語言)和替代平臺(tái)(任何NoSQL解決方案)方面看,Hadoop 1.0或2.0版本是否能夠長(zhǎng)期保持其目前發(fā)展勢(shì)頭的前景仍不明朗。