探秘淘寶Hadoop集群
當(dāng)下中國超大規(guī)模的單Master節(jié)點(diǎn)Hadoop集群在哪里?在淘寶。
據(jù)悉,淘寶Hadoop集群擁有2860個(gè)節(jié)點(diǎn),清一色基于英特爾處理器的x86服務(wù)器,其總存儲(chǔ)容量50PB,實(shí)際使用容量超過40PB,日均作業(yè)數(shù)高達(dá)15萬,為淘寶網(wǎng)的日常運(yùn)營做出了關(guān)鍵支撐。對(duì)了,它還有一個(gè)很美麗的名字:“云梯”。
近日,《網(wǎng)絡(luò)世界》記者有幸采訪到了阿里集團(tuán)技術(shù)共享平臺(tái)核心系統(tǒng)研發(fā)部海量數(shù)據(jù)技術(shù)專家羅李。作為淘寶“云梯”集群元老級(jí)創(chuàng)建者,以及目前的負(fù)責(zé)人,他詳細(xì)講解了Hadoop在淘寶的應(yīng)用與發(fā)展。
“云梯”的前世今生
“在2008年之前,淘寶內(nèi)部一些業(yè)務(wù)團(tuán)隊(duì),紛紛搭建了自己的Hadoop集群,但規(guī)模都很小,出了問題也都各自解決。”羅李說,“考慮到淘寶的業(yè)務(wù)確實(shí)對(duì)分布式計(jì)算系統(tǒng)有需要,再加上這種分散模式小集群的資源利用率不高,整個(gè)集團(tuán)就決定建立一個(gè)統(tǒng)一的、大的分布式計(jì)算集群,為各業(yè)務(wù)線服務(wù)。”
阿里集團(tuán)技術(shù)共享平臺(tái)核心系統(tǒng)研發(fā)部海量數(shù)據(jù)技術(shù)專家 羅李
至于為什么選擇Hadoop,羅李表示,當(dāng)時(shí)能夠達(dá)到商用水準(zhǔn)的分布式計(jì)算技術(shù)也只有Hadoop。不過,他說:“當(dāng)時(shí)整個(gè)淘寶并沒有一個(gè)對(duì)Hadoop內(nèi)核真正了解的人,后來是抽調(diào)了雅虎中國的核心技術(shù)人員,在2008年10月成立了專門團(tuán)隊(duì)。”
“2008年我也是剛進(jìn)淘寶,就直接被分配到這個(gè)團(tuán)隊(duì),那時(shí)整個(gè)團(tuán)隊(duì)包括我才四個(gè)人。到2009年,我們的‘云梯’集群剛搭起來的時(shí)候,才300臺(tái)規(guī)模。”羅李告訴記者。
短短不過四年時(shí)間,“云梯”集群已經(jīng)擴(kuò)張到近2900臺(tái)規(guī)模,成為中國規(guī)模最大的單Master節(jié)點(diǎn)Hadoop集群。而伴隨“云梯”集群成長的羅李,也成為了中國當(dāng)下為數(shù)不多的、真正精通Hadoop的高級(jí)技術(shù)人才。
Hadoop在淘寶的發(fā)展
談起“云梯”集群名字的由來,這竟是一個(gè)有幾分“無心插柳柳成行”意味的故事。原來,出于安全性等多重考慮,當(dāng)時(shí)阿里集團(tuán)高層是決心自主研發(fā)一套有獨(dú)立自主知識(shí)產(chǎn)權(quán)的分布式計(jì)算系統(tǒng),即后來代號(hào)為“飛天”的大規(guī)模分布式計(jì)算系統(tǒng)。而羅李他們研發(fā)的這個(gè)基于開源Hadoop技術(shù)的集群,最初只是被定位成一個(gè)臨時(shí)的、有過渡性質(zhì)的系統(tǒng),目的是讓淘寶的業(yè)務(wù)人員提前熟悉和使用分布式計(jì)算系統(tǒng),待“飛天”成熟后再將業(yè)務(wù)移植過來。
“我們一開始就知道我們是為他們(‘飛天’系統(tǒng))鋪路的,所以,既然他們叫‘飛天’,那我們就叫‘云梯’好了,隱含奉獻(xiàn)的意思。”羅李說。
只是,世事難料,大家都沒有想到,四年后的今天大數(shù)據(jù)和Hadoop會(huì)如此之火,發(fā)展前景堪稱一片光明,而淘寶憑借“云梯”集群也成為該技術(shù)領(lǐng)域的應(yīng)用先鋒。當(dāng)然,阿里集團(tuán)一直在堅(jiān)持研發(fā)“飛天”集群,并取得了階段性的成果。因此,在阿里集團(tuán)內(nèi)部,其實(shí)是“飛天”和“云梯”兩大分布式計(jì)算系統(tǒng)并立的局面。#p#
在應(yīng)用中發(fā)展
從2009年的300臺(tái)發(fā)展到目前2860臺(tái),這絕不只是一個(gè)機(jī)器簡單堆疊的過程,而是耗費(fèi)了淘寶研發(fā)人員無數(shù)的智慧與汗水。Hadoop技術(shù)本身在淘寶也獲得了長足的發(fā)展。
淘寶對(duì)Hadoop進(jìn)行深度重構(gòu)的最重要一次實(shí)踐,當(dāng)屬該公司根據(jù)自身的業(yè)務(wù)需求,開發(fā)了自己的Hadoop分支——ADFS。
據(jù)介紹,ADFS主要解決的是HDFS NameNode在設(shè)計(jì)上存在單點(diǎn)故障、內(nèi)存瓶頸(因?yàn)樗械臄?shù)據(jù)都是存入內(nèi)存,長期以往,NameNode必將遭遇內(nèi)存擴(kuò)展瓶頸),以及集群重啟時(shí)間過長,期間無法對(duì)集群進(jìn)行寫操作等問題。
而ADFS原理簡單地說就是將非熱點(diǎn)數(shù)據(jù)存入“數(shù)據(jù)庫”,而非NameNode的內(nèi)存。羅李說:“由于數(shù)據(jù)存放在數(shù)據(jù)庫里,只要數(shù)據(jù)庫‘不掛’就沒有問題,NameNode的單點(diǎn)故障問題由此解決,同時(shí)也一并解決了內(nèi)存瓶頸。系統(tǒng)升級(jí)不需要再停機(jī),重啟時(shí)間也由原來的一兩個(gè)小時(shí)縮短到5分鐘之內(nèi)。總之,ADFS能提供10億文件/目錄的管理能力,其穩(wěn)定性、性能和可維護(hù)性不輸于甚至優(yōu)于現(xiàn)有系統(tǒng)。”此外,值得一提的是,淘寶已經(jīng)將ADFS開源在GitHub之上。
另一大改進(jìn),就是為減少磁盤使用量而實(shí)施了HDFS Raid技術(shù)。
“HDFS出于可靠性考慮,都是將一份數(shù)據(jù)存成三份,這意味著1GB的數(shù)據(jù)占用了3GB的存儲(chǔ)容量,可靠性是有了,但經(jīng)濟(jì)性并不好。HDFS Raid就相當(dāng)于Raid 10,原來1GB的數(shù)據(jù)所需要的空間從原來的3GB降到2.4GB,對(duì)我們來講,就是上百萬資金的節(jié)省,而可靠性卻并沒有喪失。”羅李說。
不過,羅李表示,HDFS Raid技術(shù)來源于Facebook,他們是在Facebook提供的版本上做了些改進(jìn)。
此外,還一個(gè)無法被描述成“項(xiàng)目”的改進(jìn)就是持續(xù)不斷地“優(yōu)化”。“雖然Hadoop的優(yōu)勢之一就是不夠了就可以加機(jī)器,但加機(jī)器意味著更大的存儲(chǔ)容量、更大的計(jì)算需求和更大的網(wǎng)絡(luò)流量,對(duì)主節(jié)點(diǎn)都會(huì)帶來新的壓力,因此,每次在擴(kuò)展之前,我們都要對(duì)系統(tǒng)進(jìn)行評(píng)估,都需要優(yōu)化代碼。”羅李說。

羅李頗為驕傲地告訴記者,由于不斷地對(duì)Hadoop內(nèi)核進(jìn)行優(yōu)化,淘寶版本的Hadoop在性能上“比一些社區(qū)的Hadoop版本高出30%~50%”。
“畢竟,我們這么大的規(guī)模作支撐。因?yàn)橄到y(tǒng)的性能瓶頸只有在一定規(guī)模下才能暴露,而我們甚至將Java內(nèi)核的漏洞都跑出來了。”羅李說。
不過,羅李坦承,自從今年七月份新的“云梯”版本上線之后,他們發(fā)現(xiàn)通過優(yōu)化代碼提高系統(tǒng)性能的空間越來越小了。“所以,我們開始和運(yùn)維團(tuán)隊(duì)一起合作,打算去從硬件層面下手,例如購買更高性能的CPU、閃存、萬兆網(wǎng)卡等。事實(shí)上,我們現(xiàn)在最緊缺的資源就是CPU和磁盤。”他說。
同時(shí),羅李指出,對(duì)很多公司而言,在規(guī)模不是特別大的情況下,通過購買更強(qiáng)勁的硬件來提高集群性能也是一個(gè)好辦法,而且其成本不一定比維持一支技術(shù)團(tuán)隊(duì)要高。而硬件產(chǎn)業(yè)鏈的上游廠商英特爾則公開表示,英特爾未來首要任務(wù)之一,就是要打造適用于大數(shù)據(jù)應(yīng)用的“芯”,該公司今年三月發(fā)布的全新至強(qiáng)處理器E5產(chǎn)品家族,就能為分布式計(jì)算帶來更優(yōu)性能、能效、可擴(kuò)展性和可管理性。同時(shí),英特爾還將幫助合作伙伴打造可承載大數(shù)據(jù)應(yīng)用的基礎(chǔ)設(shè)施。
關(guān)于“云梯”集群未來的發(fā)展方向,羅李表示,短期內(nèi)是存儲(chǔ)結(jié)構(gòu)和技術(shù)進(jìn)行優(yōu)化部署ADFS,并且開發(fā)HDFS NameNode HA技術(shù),而長期來說,“云梯”將演變成多Master節(jié)點(diǎn)Hadoop集群。
如今,Hadoop之火有目共睹,那什么樣的公司適合采嘗試這一新興技術(shù)?羅李回答道:“還應(yīng)該是從業(yè)務(wù)角度出發(fā)。有海量數(shù)據(jù)需要處理,并且計(jì)算模型并不太復(fù)雜,對(duì)數(shù)據(jù)進(jìn)行處理的過程可以分成一個(gè)個(gè)小的步驟去完成,就可以嘗試Hadoop 技術(shù)。”