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