Hadoop是當(dāng)前最流行的大數(shù)據(jù)技術(shù)架構(gòu),很多大數(shù)據(jù)應(yīng)用都是建立在Hadoop平臺基礎(chǔ)之上。很多人都知道Hadoop是Apache基金會的頂級開源項目,但并不是每個人都知道,在Hadoop的演進(jìn)發(fā)展中,70%的貢獻(xiàn)是來自Yahoo公司。
Yahoo公司是Hadoop平臺最大的用戶、最有力的應(yīng)用支持者和Hadoop商業(yè)化的重要推動者,Hadoop一直是Yahoo公司云計算平臺的核心,Yahoo公司最大的單個Hadoop集群由4000個節(jié)點組成,Yahoo公司的推薦系統(tǒng)、廣告分析等應(yīng)用均建立在Hadoop分布式計算平臺上,Yahoo公司通過開發(fā)者論壇等方式每年培養(yǎng)了大量掌握Hadoop平臺的專業(yè)技術(shù)人員,Yahoo公司分拆出來并投資的Hadoop技術(shù)研發(fā)部門-Hortonworks目前是全球發(fā)展最快的Hadoop商業(yè)化公司之一。Yahoo 公司并沒有躺在這些成績上沾沾自喜,相反他們在積極推進(jìn)Hadoop2.0——Yahoo新一代大數(shù)據(jù)技術(shù)架構(gòu)。
Yahoo的新一代大數(shù)據(jù)技術(shù)架構(gòu)由以下幾個部分組成:
核心YARN。YARN或稱為MapReduce2.0是這個技術(shù)架構(gòu)的核心,它可以看作Yahoo新一代大數(shù)據(jù)平臺的操作系統(tǒng)。為了解決Hadoop1.0的性能瓶頸問題,YARN將MapReduce中一個JobTacker中所具有的兩個主要功能(資源管理和作業(yè)調(diào)度/監(jiān)控)實現(xiàn)了分離,主要方法是創(chuàng)建一個全局的資源管理器(ResourceManager,RM)和若干個針對應(yīng)用程序的應(yīng)用主服務(wù)器(ApplicationMaster,AM)。經(jīng)過這樣的變化,YARN在擴(kuò)展性方面有很大改進(jìn),可以支持10000+計算機(jī)集群,同時改進(jìn)了MapReduce的性能,并且支持Hadoop之外的其他計算框架,如低延時、流計算等框架。
計算處理框架。除了支持批處理的Hadoop之外,還有Spark和Storm等計算框架的集成。其中,Hadoop用于離線數(shù)據(jù)分析,Spark用于多迭代批處理數(shù)據(jù)分析, Storm則是用于流數(shù)據(jù)的實時分析和預(yù)測。借助YARN,Yahoo將大數(shù)據(jù)離線、近線和實時數(shù)據(jù)實現(xiàn)了整合。
——Storm。Storm原本是Twitter的流計算工具。Yahoo在新一代技術(shù)架構(gòu)實踐中,將Storm與YARN整合成為Storm-YARN來支持的實時的流計算分析。Storm是專門針對實時數(shù)據(jù)類型(即流數(shù)據(jù))的計算分析框架,在流數(shù)據(jù)不斷變化運(yùn)動的過程中實時地進(jìn)行分析,捕捉到可能對用戶有用的信息,并把結(jié)果迅速發(fā)送出去。例如,為了支持個性化搜索廣告,系統(tǒng)需要實時處理來自幾百萬唯一用戶每秒成千上萬次的查詢,并即時分析用戶的會話特征來提高廣告相關(guān)性和預(yù)測模型的準(zhǔn)確度。
——Spark。Spark是發(fā)源于美國加州大學(xué)伯克利分校AMPLab的集群計算平臺,已正式申請加入Apache孵化器,Yahoo新一代技術(shù)架構(gòu)將其YARN進(jìn)行整合。Spark立足于內(nèi)存計算,從多迭代批量處理出發(fā),兼收并蓄數(shù)據(jù)倉庫、流處理和圖計算等多種計算范式,具有輕量、快速計算等特點。Spark基于Scala語言,是一個比Hadoop代碼行少的輕量級系統(tǒng),但它的計算速度非常快,對小數(shù)據(jù)集能達(dá)到亞秒級的延遲,對大數(shù)據(jù)集典型的迭代機(jī)器學(xué)習(xí)、即席查詢、圖計算等應(yīng)用,Spark版本比基于MapReduce、Hive和Pregel的實現(xiàn)快上十倍到百倍。
存儲層。底層存儲則仍是基于Hadoop的文件系統(tǒng)HDFS和NOSQL數(shù)據(jù)庫HBase。
盡管,目前以YARN為核心的新一代技術(shù)架構(gòu)還有很多方面需要完善,但其在Yahoo中戰(zhàn)略地位已經(jīng)基本確立。其一貫的開源策略,也將給大數(shù)據(jù)業(yè)界帶來福音。