Facebook數(shù)據(jù)天才之一杰伊-帕瑞克
北京時(shí)間2月5日消息,目前,F(xiàn)acebook已經(jīng)發(fā)展成為全球最大的社交網(wǎng)絡(luò),擁有超過10億活躍用戶。九年的成長歷程中,F(xiàn)acebook不僅僅遇到了一般公司發(fā)展過程中常見的麻煩,也因?yàn)榫薮蟮挠脩魯?shù)量級,遭遇更多常人難以想象的“大數(shù)據(jù)”。Facebook崛起之路上,究竟有哪些頂級數(shù)據(jù)天才、頂尖數(shù)據(jù)技術(shù)的支持呢?以下是文章全文:
杰伊·帕瑞克的辦公桌,就放置在美國加州門洛帕克Facebook總部16號樓里,而他的行政助理吉尼·薩穆埃爾,就在離他不遠(yuǎn)的地方工作。每隔一段時(shí)間,帕瑞克都會聽到薩穆埃爾咯咯地傻笑,而這就意味著,她很有可能又在Facebook上傳了一些令人尷尬的照片,并且將帕瑞克標(biāo)記了出來。通常情況下,帕瑞克自己Facebook頁面上的通知,總會緊跟著她的笑聲浮現(xiàn)。而如果通知沒有如約而至的話,他就可能就要忙碌起來了。
帕瑞克是Facebook基礎(chǔ)設(shè)施工程部門的副總裁,負(fù)責(zé)這個(gè)全球最大社交網(wǎng)絡(luò)的硬件和軟件。如果頁面上的通知,沒有在幾秒鐘之內(nèi)直接快速出現(xiàn),那么他就要仔細(xì)檢查自己的工作,然后努力找到造成這種情況的原因了。麻煩的是,F(xiàn)acebook的基礎(chǔ)設(shè)施,已經(jīng)擴(kuò)展到全球四個(gè)不同的地方,四個(gè)大型數(shù)據(jù)中心,數(shù)十萬臺計(jì)算機(jī)服務(wù)器,除此之外,還有更多的軟件工具——深深吸一口氣,你也很難在不間斷的情況下,說完它們的名字。而導(dǎo)致通知未能出現(xiàn)的原因,就埋藏在這個(gè)網(wǎng)絡(luò)的某一個(gè)角落中。
這就是為什么帕瑞克和他的團(tuán)隊(duì),會打造像Scuba這樣的工具。Scuba是一個(gè)具有劃時(shí)代意義的軟件平臺,它可以幫助Facebook的工程師們,及時(shí)對公司基礎(chǔ)設(shè)施數(shù)據(jù)進(jìn)行挖掘分析。通常情況下,處理如此海量的數(shù)據(jù)是需要耗費(fèi)些時(shí)間的。你甚至可能需要幾個(gè)小時(shí)的時(shí)間才能處理完所有的事情。不過,對Scuba來說這就不再是問題,它是一種內(nèi)存式的數(shù)據(jù)存儲——將所有的數(shù)據(jù),存儲在數(shù)百個(gè)計(jì)算機(jī)服務(wù)器高速內(nèi)存中——這意味著你可以更實(shí)時(shí)地進(jìn)行數(shù)據(jù)查詢。
帕瑞克表示:“它讓我們能夠了解基礎(chǔ)設(shè)施工作情況——我們的服務(wù)器做得如何,我們的網(wǎng)絡(luò)表現(xiàn)如何,不同地軟件系統(tǒng)交互的如何。所以如果吉尼在一張照片中標(biāo)記了我,而通知在幾秒鐘之內(nèi)都沒有顯現(xiàn),我們就可以查看Scuba來查找問題。”
九年之前,馬克·扎克伯格在哈佛的宿舍里推出了震驚世界的Facebook,而現(xiàn)在它已經(jīng)一舉發(fā)展成了世界上最流行的社交網(wǎng)絡(luò)。扎克伯格和他的公司,建立了這個(gè)星球上最先進(jìn)的工程業(yè)務(wù),而有趣的是,他們這樣做的主要原因?qū)嵲谥皇怯捎谄炔坏靡选acebook面臨著一個(gè)獨(dú)特而艱巨的任務(wù)——服務(wù)10億個(gè)不同的用戶,并且要去處理10億個(gè)不同的消息、照片、視頻,以及很多其他的數(shù)據(jù)源——這一任務(wù)對的技術(shù)要求,比你想象的還要多。
是的,F(xiàn)acebook的工程大軍中,不乏像拉爾斯·拉斯穆森這樣,創(chuàng)作了社交搜索工具GraphSearch的天才,也有幫助美化工具、測試、部署應(yīng)用程序的人。而現(xiàn)在,F(xiàn)acebook的硬件工程師,也擁有像阿米爾·邁克爾這樣的天才,他們負(fù)責(zé)服務(wù)器設(shè)計(jì)、存儲設(shè)備以及整個(gè)數(shù)據(jù)中心管理。
Facebook還打造了一個(gè),由頂級工程師組成的數(shù)據(jù)處理團(tuán)隊(duì)——這項(xiàng)工作在現(xiàn)代網(wǎng)絡(luò)中的重要性,已經(jīng)日趨明顯。Scuba僅僅只是Facebook眾多“大數(shù)據(jù)”軟件平臺的冰山一角——利用分布式系統(tǒng),讓數(shù)百上千個(gè)計(jì)算機(jī)上,可以協(xié)同分散處理一個(gè)單一的任務(wù)。
包括拉古·穆爾蒂,艾弗里·清,約什·梅茨勒在內(nèi)的工程師們,打造了這些出色工具。它們不僅僅能夠排除Facebook數(shù)據(jù)中心內(nèi)的故障,還能幫助Faccebook數(shù)據(jù)科學(xué)家,分析Facebook的在線應(yīng)用的有效性,以及用戶的行為。
雖然谷歌(微博)的“大數(shù)據(jù)”平臺,仍然被公認(rèn)為全網(wǎng)最領(lǐng)先的。但是隨著Facebook開始拓展自己的網(wǎng)絡(luò)帝國,這家社交網(wǎng)絡(luò)巨頭并沒有被谷歌甩開太遠(yuǎn),而與谷歌不同的是,F(xiàn)acebook希望與全世界共享它的軟件。谷歌總是在分享自己的想法、思路,而Facebook則是在分享自己的代碼,并希望其他人能夠好好利用。帕瑞克表示,“我們公司的使命,是讓全世界連接在一起,并且變得更開放。而在我們進(jìn)行基礎(chǔ)設(shè)施建設(shè)的同時(shí),我們也在幫助促進(jìn)達(dá)成這一使命。”
NewsFeed的故障
Facebook數(shù)據(jù)團(tuán)隊(duì)的創(chuàng)始人,叫作杰夫·哈梅巴赫。與扎克伯格一樣,哈梅巴赫也曾經(jīng)是哈佛的一名學(xué)生,不過他的專業(yè)是數(shù)學(xué)。在2006年春天接受Facebook的工作之前,他曾在紐約貝爾斯登擔(dān)任數(shù)據(jù)科學(xué)家一職。
哈梅巴赫認(rèn)為Facebook的數(shù)據(jù)操作靈感,要追溯到一天下午,那時(shí)他還在貝爾斯登,路透社的數(shù)據(jù)訂閱突然出現(xiàn)了故障。而猶豫數(shù)據(jù)訂閱癱瘓,沒有人能進(jìn)行交易。故障持續(xù)了一個(gè)鐘頭,而造成問題的原因,讓人有些哭笑不得
——負(fù)責(zé)這項(xiàng)任務(wù)的那個(gè)家伙,出門吃了個(gè)午飯。
哈梅巴赫突然意識到,這次嚴(yán)重的故障證明,數(shù)據(jù)工具的重要性絲毫不亞于數(shù)據(jù)專家。哈梅巴赫回憶說,“我突然發(fā)現(xiàn)了一個(gè)空白——需要創(chuàng)建一個(gè)完整的系統(tǒng),采集數(shù)據(jù),并且全部跑完整個(gè)數(shù)據(jù)模型——在每一個(gè)點(diǎn)上,盡可能優(yōu)化系統(tǒng)。”
這基本上簡單地概括了他在Facebook的工作。Facebook最初聘請他,是作為一名數(shù)據(jù)科學(xué)家——幫助通過信息分析理解公司運(yùn)作。但是由于路透數(shù)據(jù)訂閱失誤,給他留下了深刻的印象,哈梅巴赫更近一步。
他打造了一個(gè)團(tuán)隊(duì),管理整個(gè)公司的數(shù)據(jù)。這一團(tuán)隊(duì)不僅分析數(shù)據(jù),還創(chuàng)建并運(yùn)行一個(gè)負(fù)責(zé)收集、處理數(shù)據(jù)的工具。
他剛加入Facebook的時(shí)候,這家公司還在使用老舊的甲骨文數(shù)據(jù)倉庫處理信息。但是這樣的軟件設(shè)計(jì),已經(jīng)無法跟上Facebook迅速發(fā)展的腳步。
哈梅巴赫還推薦Facebook使用開源軟件平臺Hadoop——Hadoop可以將數(shù)據(jù)分散到商用服務(wù)器的海洋,這些機(jī)器將協(xié)同處理數(shù)據(jù),讓它們變成真正有意義的信息。這有著很強(qiáng)的誘惑力,因?yàn)樯逃梅⻊?wù)器的價(jià)格往往相對較低,而當(dāng)你的數(shù)據(jù)擴(kuò)展變多的時(shí)候,你只需要添加更多的機(jī)器就可以輕松應(yīng)對了。
雅虎利用Hadoop構(gòu)建了網(wǎng)絡(luò)搜索引擎索引,但是哈梅巴赫和Facebook,則把它用作了幫助公司數(shù)據(jù)科學(xué)家的方法——能夠比甲骨文的數(shù)據(jù)倉庫,處理更大量的信息。
而Facebook還研究了一個(gè)叫作Hive的產(chǎn)品——分析師可以應(yīng)用這一工具,使用一種與結(jié)構(gòu)化查詢語言相似的語言,處理Hadoop上的數(shù)據(jù)。而Hive也很快發(fā)展成為了Facebook主要的在線廣告性能分析工具。
2008年秋天,哈梅巴赫離開了Facebook,并幫助創(chuàng)建了Cloudera公司。
未來的Hadoop
現(xiàn)在,無論是Twitter還是eBay或是LinkedIn在使用Hadoop,而Facebook則將這一分布式系統(tǒng)基礎(chǔ)架構(gòu)上升到了新的極致。并且,Hadoop正致力于將此服務(wù)平臺做到極致。基礎(chǔ)設(shè)施負(fù)責(zé)人杰伊·帕瑞克曾表示,F(xiàn)acebook運(yùn)行著世界上最大的Hadoop計(jì)算機(jī)集群。Facebook的Hadoop集群中的一個(gè),就涉及了超過4000臺機(jī)器,存儲著超過100PB字節(jié)的數(shù)據(jù),也就是數(shù)百萬gigabytes的數(shù)據(jù)。
這個(gè)集群是非常龐大,甚至已經(jīng)超越了四個(gè)數(shù)據(jù)中心。Facebook使用Hadoop服務(wù)器來分配分布于各離散數(shù)據(jù)中心的數(shù)據(jù)空間,使每次的尋址過程自主進(jìn)行。Facebook工程師拉古·穆爾蒂說。“我們的規(guī)劃總是目光長遠(yuǎn)的,但是,我們必須通過這個(gè)過程,將所有數(shù)據(jù)遷移到新的地方去。”幾年之前,拉古·穆爾蒂還在完成斯坦福大學(xué)Ph.D.項(xiàng)目的時(shí)候,被杰夫·哈梅巴赫;目前為止,他作為Facebook大數(shù)據(jù)業(yè)務(wù)團(tuán)隊(duì)的中堅(jiān)力量,已工作四年有余。
Facebook信誓旦旦地表示絕不會再犯類似的錯誤,于是開始著手建立一個(gè)跨越多個(gè)數(shù)據(jù)中心的Hadoop集群。該項(xiàng)目由穆爾蒂負(fù)責(zé),他曾經(jīng)參與搭建雅虎的pre-Hadoop分布式計(jì)算系統(tǒng),并吸引到了哈梅巴赫的注意。如今,穆爾蒂已經(jīng)參與過,包括Hive在內(nèi)的許多Facebook的重要項(xiàng)目的研發(fā)。但是,這還是有些許不同——Hadoop的設(shè)計(jì)并沒有考慮多設(shè)備之上運(yùn)行情況。通常情況下,由于需要服務(wù)器之間的高負(fù)載通信,集群被限制在了單一數(shù)據(jù)中心。
穆爾蒂和他的團(tuán)隊(duì)成員,在整個(gè)Facebook地基礎(chǔ)設(shè)施上,推出了一個(gè)叫作Prism平臺。典型的Hadoop集群,通常是由單一的“命名空間”管理,但是Prism則開辟出多個(gè)命名空間,在一個(gè)相同的物理集群之上,創(chuàng)造了很多“邏輯集群”。
這些“命名空間”可以劃分給不同的Facebook團(tuán)隊(duì),這樣每一個(gè)團(tuán)隊(duì)都能夠得到屬于自己的命名空間,不過仍然全都在使用同一個(gè)數(shù)據(jù)集,而這個(gè)數(shù)據(jù)集可以跨越多個(gè)數(shù)據(jù)中心。這里的訣竅是,當(dāng)一個(gè)團(tuán)隊(duì)運(yùn)行一項(xiàng)工作的時(shí)候,它可以復(fù)制這項(xiàng)工作所需要的特定的數(shù)據(jù),并且把它移進(jìn)一個(gè)單一的數(shù)據(jù)中心。穆爾蒂表示,“我們將這些能力下放到獨(dú)立的小團(tuán)隊(duì),因?yàn)樗麄兡軌蚋玫牧私饩W(wǎng)站特殊部分的獨(dú)特需要。”
根據(jù)穆爾蒂,這一系統(tǒng)理論上,可以擴(kuò)展到無限多個(gè)服務(wù)器上。這意味著,F(xiàn)acebook不必再去擔(dān)心,需要打造另一個(gè)新的數(shù)據(jù)中心了。對于數(shù)據(jù)團(tuán)隊(duì)的托斯來說,這意味著他能夠保證這一基礎(chǔ)設(shè)施平穩(wěn)運(yùn)行——這有一個(gè)額外的好處,他表示,“把整個(gè)Hadooop集群放在一個(gè)數(shù)據(jù)中心中,讓我害怕極了,而Prism能夠幫助在這一點(diǎn)上提供幫助。”
Prism只是眾多擴(kuò)展Hadoop的努力中的一個(gè)。前任雅虎雇員艾弗里·清帶領(lǐng)的團(tuán)隊(duì),最近剛剛部署了一個(gè)新的叫作Corona的平臺,允許多個(gè)工作,在一個(gè)單一的Hadoop集群之上,而并不會導(dǎo)致崩潰。
穆爾蒂還幫助建造了一個(gè)叫作Peregrine的工具,能夠讓查詢Hadoop數(shù)據(jù)的速度比標(biāo)準(zhǔn)情況快很多。Hadoop的設(shè)計(jì)初衷是一個(gè)“批處理系統(tǒng)”,這意味著,通常需要在運(yùn)行作業(yè)的時(shí)候進(jìn)行等候,但是和Impala相似的是,Peregrine可以讓平臺更接近實(shí)時(shí)。
Facebook并沒有與外界共享所有的軟件,但是卻分享了Corona,而如果以此作為習(xí)慣參考,它很有可能會在未來分享更多的代碼。這就是為什么像艾弗里這樣的工程師會在這里工作,“在Facebook,我們比起他人更早地遇到問題,而其他人就可以從中受益,他們不需要重蹈覆轍,也不需要重頭再來。”
數(shù)據(jù)天才們的糖果樂園
Hadoop是Facebook數(shù)據(jù)操作的基石,這種情況還將延續(xù)很多年。但是隨著Scuba等工具的興起,F(xiàn)acebook也將轉(zhuǎn)投新的方向。
Scuba是一款正在快速增長的內(nèi)存數(shù)據(jù)儲存工具,設(shè)計(jì)的主要目的是為了極大的提高數(shù)據(jù)信息分析的速度。這款工具是由Facebook公司的工程師團(tuán)隊(duì)開發(fā)的,該團(tuán)隊(duì)中包括一位在頂級編程網(wǎng)站TopCoder上,排名第一的工程師約什·梅茨勒。Scuba在Facebook的數(shù)據(jù)中心中運(yùn)行,幫助該公司收集基礎(chǔ)設(shè)施的信息,并這些log壓縮在數(shù)以百計(jì)的服務(wù)器內(nèi)存中。所以,這些數(shù)據(jù)可以被即時(shí)查詢到。
帕瑞克表示:“這就像Excel的數(shù)據(jù)透視表一樣。即使你在處理數(shù)以百萬計(jì)的數(shù)據(jù),你也可以在亞秒級的響應(yīng)時(shí)間里得到結(jié)果。”
是的,這個(gè)項(xiàng)目看起來似乎與Peregrine有些重疊——至少在一些部分上存在重復(fù)。但就像杰夫·哈梅巴赫指出的,這款工具是Facebook精神的一部分。“Facebook做事的方式,就是尋找最短路徑的解決方案,而并非打造一款大而全的系統(tǒng),來處理所有問題。”就像Facebook的其他項(xiàng)目一樣,Scuba是在公司級的黑客馬拉松中脫穎而出的。工程師遇到問題就自己解決,而非等到其他項(xiàng)目來幫他們解決問題。
這種情況在Facebook中隨處可見。SantoshJanardhan曾就職于PayPal和YouTube,但是在他眼中,這些公司的工作相比之下非常微不足道。“Facebook擊敗了他們。對于我來講,在這里我感覺到了壓力。”工程師在這里希望解決更大的問題。“如果你是個(gè)技術(shù)迷,那么這里就像是糖果樂園。”
推薦閱讀
陷入出售困境的中華英才網(wǎng)又掀起波瀾。日前有業(yè)內(nèi)人士爆料稱,中華英才網(wǎng)于昨日正式展開裁員,被辭員工獲N+3月薪補(bǔ)償,懷孕女員工補(bǔ)償增加24月,一位工作十年的懷孕經(jīng)理獲37月薪補(bǔ)償,獲得賠償金達(dá)幾十萬。對于被裁員>>>詳細(xì)閱讀
本文標(biāo)題:Facebook崛起背后的數(shù)據(jù)天才
地址:http://www.xglongwei.com/a/guandian/yejie/20130205/259237.html