,據(jù)國外媒體報(bào)道,當(dāng)前,無數(shù)網(wǎng)站正面臨著如何高效管理海量在線數(shù)據(jù)的問題,而這一問題在5年前也同樣困擾著Facebook。但是,根據(jù)Facebook技術(shù)專家杰-帕里克(Jay Parikh)的說法,人們沒有必要過分擔(dān)憂這些問題。
Facebook的“三棱鏡”計(jì)劃
這是因?yàn)樵谶^去幾年,許多互聯(lián)網(wǎng)的巨型公司(包括Facebook)搭建了大量的軟件平臺(tái),并通過數(shù)以萬計(jì)的分布式服務(wù)器來解決在線信息爆炸的問題。此外,這些巨頭們還同任何有需求的公司分享其“大數(shù)據(jù)”處理軟件。
通過與雅虎合作,F(xiàn)acebook成為了最早涉足Hadoop技術(shù)的公司。Hadoop是一種無所不包的軟件平臺(tái),可以用來處理和分析互聯(lián)網(wǎng)海量數(shù)據(jù)。雅虎把這一開源項(xiàng)目當(dāng)作是一種有助于建立索引的工具,從而加強(qiáng)其自身搜索引擎的功能。但是,之后參與進(jìn)來的公司開始把Hadoop加入到自己的互聯(lián)網(wǎng)項(xiàng)目中,并將其作為代碼優(yōu)化的必備工具。
其結(jié)果是,Hadoop演化成了一種可以處理100PB數(shù)據(jù)的平臺(tái)(1PB=1024TB=1048576GB)。一直以來,帕里克專注于Facebook快速增長的軟硬件基礎(chǔ)設(shè)施建設(shè)。據(jù)他表示,“5年前,我們開始研發(fā)這些技術(shù)。當(dāng)時(shí),我們可以做的事情以及開發(fā)的速度都受到了一定的限制。此后,開源社區(qū)發(fā)生了巨大的變化,最重要的就是很多這些限制、障礙都被去除了。人們目前在互聯(lián)網(wǎng)上可以做的事情超出了我們當(dāng)時(shí)的想象。”
但是現(xiàn)在,F(xiàn)acebook正開始著手處理更為棘手的數(shù)據(jù)雪崩問題(avalanche of data),因?yàn)楝F(xiàn)在又出現(xiàn)了新的限制需要突破。本周,在Facebook位于門洛帕克總部舉行的一次記者招待會(huì)上,帕里克披露了Facebook已經(jīng)開發(fā)出兩種全新軟件平臺(tái)的消息,并表示Hadoop可以支撐的數(shù)據(jù)規(guī)模將進(jìn)一步擴(kuò)大。另外,F(xiàn)acebook還決定將這兩款軟件進(jìn)行開源。
第一種平臺(tái)叫做“Corona(日冕)”,它可以讓你在數(shù)目龐大的Hadoop服務(wù)器之間運(yùn)行大量的任務(wù),并且不用擔(dān)心軟件錯(cuò)誤會(huì)導(dǎo)致整個(gè)服務(wù)器簇出現(xiàn)崩潰。不過,第二種平臺(tái)更加有意義。它的名字叫做“Prism(三棱鏡)”,可以讓Hadoop服務(wù)器簇運(yùn)行在全球范圍內(nèi)的多個(gè)數(shù)據(jù)中心上,其規(guī)模將更加龐大。
帕里克表示,“‘Prism’可以讓我們?nèi)我廪D(zhuǎn)移數(shù)據(jù),不論我們是在俄勒岡州的普賴恩維爾、北卡羅來納州的克利夫蘭,還是遠(yuǎn)在歐洲的瑞典。”
Hadoop的基本思想是基于10年前發(fā)表的兩篇研究論文。論文探討的是谷歌為了讓搜索引擎更好的運(yùn)行而搭建的兩種大規(guī)模軟件平臺(tái):GFS和MapReduce。GFS是谷歌文件系統(tǒng)的簡(jiǎn)稱,它是一種在數(shù)以千記的服務(wù)器之間存儲(chǔ)數(shù)據(jù)的工具,而MapReduce則可以讓你將這些服務(wù)器的處理能力集中起來,從而將數(shù)據(jù)轉(zhuǎn)換成更為有用的東西。Hadoop的工作方式與此幾乎一樣——Hadoop文件系統(tǒng)(簡(jiǎn)稱HDFS)負(fù)責(zé)數(shù)據(jù)存儲(chǔ),而Hadoop MapReduce則負(fù)責(zé)數(shù)據(jù)處理。
這兩種Hadoop平臺(tái)已經(jīng)幫助像雅虎和Facebook這樣的公司成功運(yùn)行了許多年,但是它們并不完美。比如說,隨著Facebook用戶數(shù)超過9億人,Hadoop的缺陷也被相應(yīng)放大。最為明顯的是,兩種平臺(tái)都因存在“單點(diǎn)故障”的問題而被廣為詬病。一旦主服務(wù)器出現(xiàn)問題,整個(gè)服務(wù)器簇都將隨之癱瘓,盡管這一時(shí)間可能不長。
最近幾月,F(xiàn)acebook通過AvatarNode項(xiàng)目排除了HDFS平臺(tái)上的單點(diǎn)故障問題。這一開源Hadoop項(xiàng)目的前身是一個(gè)名叫HA NameNode的解決方案,它可以大大提高系統(tǒng)的可用性。但是,MapReduce上的單點(diǎn)故障依然存在。而現(xiàn)在,憑借Corona平臺(tái),F(xiàn)acebook徹底的解決了這一問題。
從傳統(tǒng)意義上來講,MapReduce使用的是單一“任務(wù)跟蹤器(job tracker)”來管理服務(wù)器簇上的任務(wù)。但是,Corona卻能生成多個(gè)任務(wù)跟蹤器。帕里克表示,“它讓我們可以在MapReduce基礎(chǔ)架構(gòu)上跟蹤更多的任務(wù)。我們可以將系統(tǒng)的吞吐量進(jìn)一步提高,從而讓Facebook內(nèi)部更多的開發(fā)團(tuán)隊(duì)和產(chǎn)品順利運(yùn)轉(zhuǎn)。”
“在過去,一旦任務(wù)跟蹤器出了問題,一切工作都需要停下來,之后你必須要重頭開始才行,這使得整個(gè)業(yè)務(wù)都會(huì)受到影響。而現(xiàn)在,有很多迷你的任務(wù)跟蹤器在進(jìn)行工作,所負(fù)責(zé)的工作也是相互獨(dú)立的。”
在硅谷,有一家名叫MapR的Hadoop創(chuàng)業(yè)型公司,托莫-希蘭(Tomer Shiran)是該公司最早的一批員工。他表示,MapR公司提供了一種具有類似優(yōu)化措施的Hadoop版本,但是他表示Hadoop開源版本依然不支持多個(gè)任務(wù)跟蹤器。希蘭曾經(jīng)使用過一個(gè)版本的Corona,據(jù)他表示這一平臺(tái)還可以讓用戶進(jìn)一步加快MapReduce的工作速度。
在發(fā)布會(huì)上,F(xiàn)acebook的杰-帕里克就Corona給出了一些細(xì)節(jié),但很明顯在Facebook內(nèi)部已經(jīng)開始使用了,而且成為了不可缺少的環(huán)節(jié)。帕里克表示,F(xiàn)acebook運(yùn)行著世界上最大的Hadoop服務(wù)器簇,存儲(chǔ)的數(shù)據(jù)超過了100PB,每30分鐘可以處理的數(shù)據(jù)超過了105TB。
然而,F(xiàn)acebook上增長的數(shù)據(jù)不久就會(huì)超過這些服務(wù)器簇的承載能力。9億用戶無時(shí)無刻不在發(fā)布新的狀態(tài)更新、照片、視頻和評(píng)論等信息。這也就是帕里克的團(tuán)隊(duì)創(chuàng)建Prism的原因,該軟件可以讓他們?cè)诙鄠€(gè)數(shù)據(jù)中心之間運(yùn)行一個(gè)龐大的Hadoop服務(wù)器簇。
帕里克表示,從傳統(tǒng)意義上講,你無法在不同的地理位置上運(yùn)行Hadoop,因?yàn)榫W(wǎng)絡(luò)數(shù)據(jù)包無法以足夠快的速度在不同服務(wù)器上進(jìn)行傳輸。他說,“Hadoop有一個(gè)很大的限制,即所有的服務(wù)器必須要彼此互聯(lián)。這一系統(tǒng)屬于非常緊密的耦合,如果這些服務(wù)器之間的傳輸延遲了幾十毫秒,整個(gè)系統(tǒng)都會(huì)面臨崩潰。”
但是,Prism會(huì)改變這一切。簡(jiǎn)單來講,Prism會(huì)自動(dòng)復(fù)制數(shù)據(jù),并在不同地點(diǎn)的服務(wù)器之間傳輸數(shù)據(jù)。帕里克表示,“它使得我們可以在物理上將這種大規(guī)模的數(shù)據(jù)倉庫分割開來,但是依然可以以一種整體的眼光來管理這一系統(tǒng)。我們可以將數(shù)據(jù)倉庫任意移動(dòng),這取決于成本、性能或技術(shù)。我們將不再受到處理能力的限制,而在單一數(shù)據(jù)中心里經(jīng)常出現(xiàn)這種問題。”
Prism讓人想起了谷歌過去一個(gè)叫做“Spanner”的平臺(tái)。Spanner的知名度并不高,谷歌一般將很多基礎(chǔ)工作放在系統(tǒng)的底層進(jìn)行處理。但在2009年,谷歌在一次對(duì)外的聲明中卻把這一平臺(tái)描述成“一種存儲(chǔ)和計(jì)算系統(tǒng),可以擴(kuò)展谷歌所有的數(shù)據(jù)中心,并可以按照網(wǎng)絡(luò)限制和使用行為,自動(dòng)傳輸和復(fù)制數(shù)據(jù)并進(jìn)行計(jì)算。”這些網(wǎng)絡(luò)限制包括帶寬、丟包率、處理能力和“失效模式”。如果一個(gè)數(shù)據(jù)中心崩潰了,Spanner即可自動(dòng)將數(shù)據(jù)轉(zhuǎn)移到另一個(gè)地點(diǎn)。
谷歌曾表示,這一平臺(tái)“會(huì)將谷歌所有機(jī)器上的資源自動(dòng)進(jìn)行分配”。在全球范圍內(nèi),谷歌總共擁有36個(gè)數(shù)據(jù)中心。
帕里克承認(rèn),Prism的基本思路同谷歌的Spanner差不多,但是他也很小心的表示,他并不是很了解Spanner以及它的用途。帕里克說,和Spanner類似,在數(shù)據(jù)中心Facebook崩潰時(shí),Prism可以立即轉(zhuǎn)移數(shù)據(jù)。
MapR的托莫-希蘭表示,除了谷歌或Facebook,其他公司目前還不能使用具有這種功能的軟件。但是,希蘭也指出,雖然目前有許多公司運(yùn)行著多個(gè)服務(wù)器簇,但是他表示其實(shí)并沒有這個(gè)必要。他說,“并不是所有公司都像谷歌那樣,需要處理如此龐大的數(shù)據(jù)。”
Facebook目前尚未真正部署Prism,帕里克拒絕表示什么時(shí)候會(huì)開始進(jìn)行。但是,他卻說,在某種意義上,F(xiàn)acebook希望可以將這一平臺(tái)進(jìn)行開源,針對(duì)Corona也可能會(huì)這么做。的確,現(xiàn)在沒有多少公司像谷歌或Facebook那樣需要解決在線數(shù)據(jù)雪崩的問題,但在未來卻存在這種可能性。帕里克說,“在未來,科技公司將面臨嚴(yán)峻的數(shù)據(jù)爆炸問題。”