劉洪宇
Hadoop在中國的征程出奇地順利,從每年一次的小型窄眾沙龍,發(fā)展成為今年11月中旬,數(shù)百名愛好者參加的學(xué)術(shù)大會,僅僅用了兩年?!斑^去這是一個草根運動,現(xiàn)在則得到了企業(yè)界的一致支持,尤其是年輕的同學(xué)們的熱情參與。”中國科學(xué)院計算技術(shù)研究所總工程師徐志偉研究員對此深感欣慰。就在這兩年中,一個憨態(tài)可掬的翹鼻子小白象(Hadoop Logo)開始如那個經(jīng)典的Linux小企鵝一樣深入人心。在云計算的大趨勢下,這一開源項目更是以其出眾的技術(shù)特性掀起了一陣不小的“Hadoop云旋風(fēng)”。
雅虎貢獻不遺余力
Hadoop是一個分布式系統(tǒng)的基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。借助它,用戶可以在不了解分布式底層細節(jié)的情況下開發(fā)分布式程序,并且能夠充分利用集群的運算和存儲能力。
讓這項技術(shù)為人所知的是Google。Google有個公開的秘密,它在數(shù)據(jù)中心使用廉價的Linux PC組成集群,運行它向公眾提供的各種服務(wù),而這種形態(tài)因為符合定義,被認為是云計算的雛形。在這樣的集群上,開發(fā)人員該如何進行分布式開發(fā)呢?
Google有三個法寶,即核心組件GFS、MapReduce和BigTable,分別是分布式文件系統(tǒng)、分布式運算的抽象操作以及大型的分布式數(shù)據(jù)庫。借助它們,即使是分布式開發(fā)的新手也可以迅速使用Google的基礎(chǔ)設(shè)施。Hadoop項目也同樣由三部分HDFS、MapReduce和Hbase組成,分別對應(yīng)Google的三大組件,是其開源實現(xiàn)。
Hadoop被認為是云計算初級階段的實現(xiàn)。近幾年來,Hadoop之所以產(chǎn)生了吸引學(xué)術(shù)界和產(chǎn)業(yè)界的巨大魅力,特別是很多互聯(lián)網(wǎng)公司使用Hadoop進行生產(chǎn)和運行,主要得益于Hadoop面向應(yīng)用問題,針對處理海量數(shù)據(jù)而設(shè)計,這正是以互聯(lián)網(wǎng)公司為代表的企業(yè)所要面對的;同時,Hadoop是開放源碼軟件,交流和合作平臺也更為廣闊。
真正成就Hadoop,并從中受益最多是雅虎。據(jù)雅虎工程副總裁、Hadoop項目負責(zé)人Eric Baldeschwieler介紹,雅虎是第一個深入使用和開發(fā)Hadoop的公司,現(xiàn)在有超過一萬個CPU的單個集群應(yīng)用Hadoop,超過500個研發(fā)人員在使用Hadoop?!把呕⒅黜摰臄?shù)據(jù)雖然并不是直接從Hadoop上取得的,但數(shù)據(jù)處理都是在Hadoop上完成的。你在雅虎主頁上進行搜索和看到廣告,服務(wù)后臺都是由Hadoop上的應(yīng)用完成的。雅虎Hadoop集群還有很大一部分做相關(guān)的后臺處理,現(xiàn)在也用Hadoop進行內(nèi)容處理、垃圾郵件過濾、內(nèi)容優(yōu)化和內(nèi)容管理,雅虎提供的內(nèi)容也存儲在Hadoop平臺上。Hadoop在雅虎得到了非常全面的應(yīng)用。”Baldeschwieler說。
身為當今最大的Hadoop用戶,為其貢獻最多的也是雅虎,72%的Hadoop開發(fā)是由雅虎貢獻的。Baldeschwieler表示,投資Hadoop,對于雅虎來說具有戰(zhàn)略意義。而他很高興地看到,雅虎的貢獻率正在降低,這意味著其他機構(gòu)為開源所作的貢獻正在逐漸增大。“我們提供了一個Hadoop分發(fā)版本,在向外分發(fā)之前,雅虎有一組專門的集群用來測試Hadoop的性能和穩(wěn)定性。也有一個2500個節(jié)點的集群專門用來驗證Hadoop新概念和新設(shè)計,最后還有一個大規(guī)模集群用于生產(chǎn)運行。Hadoop分發(fā)版本在各個層次的集群上都經(jīng)過了運行和驗證?!?Baldeschwieler表示,Hadoop分發(fā)版本與雅虎內(nèi)部使用的完全一致,雅虎能做到的,其他使用者也可以做到。
Facebook嘗到了甜頭
雅虎處理的海量數(shù)據(jù)規(guī)模以及使用的大規(guī)模集群已經(jīng)在前面做好了充分的探路工作。有了雅虎牽頭示范,更多用戶開始把目光投向了這一特色鮮明的技術(shù)。Hadoop的出現(xiàn),使研發(fā)人員不需要把知識再轉(zhuǎn)移給開發(fā)人員,他們可以直接開發(fā)具有生產(chǎn)品質(zhì)的產(chǎn)品。Facebook就是其中的代表。
資深工程師邵錚介紹說,Hadoop在Facebook的應(yīng)用是從2007年中開始的,當時Facebook的生產(chǎn)環(huán)境遭遇了傳統(tǒng)數(shù)據(jù)倉庫的可伸縮性問題,“我們發(fā)現(xiàn)需要使用超過20小時才能處理完一天的數(shù)據(jù),照這樣發(fā)展,這個時間不久就會超過一天,那樣,Facebook就沒法跟上應(yīng)用的需求了?!?/p>
在選擇解決方案時,邵錚的團隊主要考慮三方面要求:一是可伸縮性,希望這個系統(tǒng)能支持幾百臺到數(shù)千臺集群的規(guī)模;二是開放性,系統(tǒng)能很容易地加入新功能,這樣在遇到新問題時就很容易修改;三是時間,業(yè)務(wù)需要新系統(tǒng)能盡快推出。
“我們率先排除了專有系統(tǒng),也放棄了自己從頭做起,那將花費太多時間,而最后就在Hadoop上與其他方案進行比較?!鄙坼P團隊最后還是選擇了Hadoop?!八男阅芸赡懿皇亲詈玫?但潛力是最大的,當時我們使用0.15版本,遇到并且修復(fù)了很多bug,但沒有遇到大問題?!?/p>
邵錚認為,Hadoop的可伸縮性非常強,雅虎對Hadoop始終支持,社區(qū)不斷擴展,很多公司在使用Hadoop,這就增強了團隊的信心。但它用起來不是很方便,公司內(nèi)部除了工程師,數(shù)據(jù)分析師也希望使用這個系統(tǒng)。為此,Facebook基于Hadoop開發(fā)了Hive項目,使用SQL語言來操作數(shù)據(jù),這就解決了易用性的問題。10個工程師用了近6個月推出了Hive的第一個版本,并隨后將之開源。
如今,可伸縮性問題得到了較好的解決,Facebook已經(jīng)在600臺服務(wù)器上運行,每兩周還會加入一些新機器。而開源的Hive,不僅吸收了大量代碼,而且還成為學(xué)術(shù)研究、同行應(yīng)用的通用平臺。這樣可以減少大量重復(fù)勞動,一舉多得。
好技術(shù)在中國也吃香
在中國,Hadoop也掀起了一陣不小的云旋風(fēng)。提出“框計算”概念的百度,就有這樣一支特種部隊。30多名分布式系統(tǒng)開發(fā)工程師、10多名測試工程師和多名運維工程師組成了百度分布式團隊,承擔(dān)百度分布式平臺開發(fā)、建設(shè)及維護。該平臺承載百度大部分數(shù)據(jù)存儲和計算服務(wù),為百度業(yè)務(wù)提供基礎(chǔ)支撐。投入使用的就有開源分布式平臺,Hadoop受到他們的密切關(guān)注。
有著云服務(wù)商雄心的中國移動也早就開展了一項名為“Big Cloud”的研究項目?!拔覀円⒁粋€大系統(tǒng),一是滿足我們內(nèi)部對HPC的需求,中國移動擁有海量數(shù)據(jù),而且還在快速增長;二是利用這些技術(shù)來建立互聯(lián)網(wǎng)服務(wù)平臺,將云服務(wù)出售給公眾?!敝袊苿油ㄐ叛芯吭涸洪L黃曉慶介紹說,中國移動在基礎(chǔ)架構(gòu)和平臺級服務(wù)的基礎(chǔ)上,希望能提供SaaS,幫助中小企業(yè)減少IT成本和復(fù)雜性。這些設(shè)想都將利用云計算來實現(xiàn)。
實現(xiàn)這些設(shè)想的就是“Big Cloud”,目前剛剛發(fā)布的Big Cloud 1.5版本就基于穩(wěn)定的Hadoop版本。“我們在Hadoop上做了很多工作,比如數(shù)據(jù)挖掘應(yīng)用,我們開發(fā)了基于Hadoop的算法,在很多實際生產(chǎn)運行中挖掘用戶關(guān)系。與傳統(tǒng)系統(tǒng)相比,這個系統(tǒng)使用了1/6的成本實現(xiàn)了6倍的性能。”黃曉慶說。
而作為國立研究機構(gòu),中科院計算所也長期關(guān)注并投入Hadoop研究,尤其是網(wǎng)絡(luò)重點實驗室,一個重要的科研方向就是分布式系統(tǒng)軟件與網(wǎng)絡(luò)計算,這正是云計算的核心技術(shù)。列存儲并行數(shù)據(jù)處理系統(tǒng)等一系列科研成果正是基于Hadoop平臺。“現(xiàn)在我們正走向云計算,要考慮云計算在中國怎么為老百姓,為這些未來上十億的IT用戶服務(wù)。我們叫它普惠計算,已經(jīng)開始看到一些基礎(chǔ)應(yīng)用,這是中科院計算所今后幾十年的一個重要任務(wù)和研究機會?!毙熘緜ケ硎尽?/p>