主頁 > 知識(shí)庫 > 全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件

全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件

熱門標(biāo)簽:七臺(tái)河商家地圖標(biāo)注注冊 百度地圖標(biāo)注不能編輯 威海語音外呼系統(tǒng)廠家 百度高德騰訊地圖標(biāo)注公司 徐州穩(wěn)定外呼系統(tǒng)代理商 個(gè)人家庭地圖標(biāo)注教程 廣安電銷外呼系統(tǒng) 搜地圖標(biāo)注怎么找店鋪 勝威電話外呼系統(tǒng)密碼

Facebook大數(shù)據(jù)技術(shù)架構(gòu)的演進(jìn)路線
  Facebook一直是大數(shù)據(jù)技術(shù)最積極的應(yīng)用者,因?yàn)樗鼡碛械臄?shù)據(jù)量極其巨大,一份資料顯示2011年它擁有的壓縮數(shù)據(jù)已經(jīng)有25PB,未壓縮數(shù)據(jù)150PB,每天產(chǎn)生的未壓縮的新數(shù)據(jù)有400TB。在Facebook,大數(shù)據(jù)技術(shù)被廣泛應(yīng)用在廣告、新聞源、消息/聊天、搜索、站點(diǎn)安全、特定分析、報(bào)告等各個(gè)領(lǐng)域。Facebook也是Apache大數(shù)據(jù)開源項(xiàng)目的最大貢獻(xiàn)者之一。Facebook是2007年前后正式轉(zhuǎn)向Hadoop計(jì)算框架,隨之它向Apache基金會(huì)貢獻(xiàn)了大名鼎鼎的Hive、ZooKeeper、Scribe、Cassandra等開源工具,當(dāng)前Facebook的開源進(jìn)程仍在積極推進(jìn)著。Facebook大數(shù)據(jù)技術(shù)架構(gòu)經(jīng)歷了三個(gè)演變階段。

    Facebook早期的大數(shù)據(jù)技術(shù)架構(gòu)是建立在Hadoop、HBase、Hive、Scribe等開源工具基礎(chǔ)上的。日志數(shù)據(jù)流從HTTP服務(wù)器產(chǎn)生,通過日志收集系統(tǒng)Scribe耗費(fèi)秒級(jí)時(shí)間傳送到共享存儲(chǔ)NFS文件系統(tǒng),然后通過小時(shí)級(jí)的Copier/Loader(即MapReduce作業(yè))將數(shù)據(jù)文件上傳到Hadoop。數(shù)據(jù)摘要通過每天例行的流水作業(yè)產(chǎn)生,它是基于Hive的類SQL語言開發(fā),結(jié)果會(huì)定期會(huì)更新到前端的Mysql服務(wù)器,以便通過OLTP工具產(chǎn)生報(bào)表。Hadoop集群節(jié)點(diǎn)有3000個(gè),擴(kuò)展性和容錯(cuò)性方面的問題能夠很好地解決,但是早期系統(tǒng)的主要問題是整體的處理延遲較大,從日志產(chǎn)生起1~2天后才能得到最終的報(bào)表。

    Facebook當(dāng)前的大數(shù)據(jù)技術(shù)架構(gòu)是在早期架構(gòu)基礎(chǔ)上對(duì)數(shù)據(jù)傳輸通道和數(shù)據(jù)處理系統(tǒng)進(jìn)行了優(yōu)化,如圖所示,主要分為分布式日志系統(tǒng)Scribe、分布式存儲(chǔ)系統(tǒng)HDFS和HBase、分布式計(jì)算和分析系統(tǒng)(MapReduce、Puma和Hive)等。

其中,Scribe日志系統(tǒng)用于聚合來自大量HTTP服務(wù)器的日志數(shù)據(jù)。Thrift是Facebook提供的軟件框架,用于跨語言的服務(wù)開發(fā),能夠在C 、Java、PHP 、Python和Ruby等語言之間實(shí)現(xiàn)無縫的支持。采用Thrift RPC來調(diào)用Scribe日志收集服務(wù)進(jìn)行日志數(shù)據(jù)匯總。Scribe Policy是日志流量和模型管理節(jié)點(diǎn),將元數(shù)據(jù)傳送給Scribe客戶端和Scribe HDFS,采集的日志數(shù)據(jù)存儲(chǔ)在Scribe HDFS。Facebook對(duì)早期系統(tǒng)優(yōu)化后的數(shù)據(jù)通道稱為Data Freeway,能夠處理峰值9GB/s的數(shù)據(jù)并且端到端的延遲在10s以內(nèi),支持超過2500種的日志種類。Data Freeway主要包括4個(gè)組件,Scribe、Calligraphus、Continuous Copier和PTail。Scribe用于客戶端,負(fù)責(zé)通過Thrift RPC發(fā)送數(shù)據(jù);Calligraphus在中間層梳理數(shù)據(jù)并寫到HDFS,它提供了日志種類的管理,利用Zookeeper進(jìn)行輔助;Continuous Copier將文件從一個(gè)HDFS拷貝到另一個(gè)HDFS;PTail并行地tail多個(gè)HDFS上的目錄,并寫文件數(shù)據(jù)到標(biāo)準(zhǔn)輸出。在當(dāng)前架構(gòu)中,一部分?jǐn)?shù)據(jù)處理仍然以批處理的方式通過MapReduce進(jìn)行小時(shí)級(jí)的處理,存儲(chǔ)在中央的HDFS,每天通過Hive進(jìn)行分析處理。另一部分接近實(shí)時(shí)的數(shù)據(jù)流則通過Puma來進(jìn)行分鐘級(jí)的處理。Facebook對(duì)專門分析提供Peregrine(Hipal)工具、對(duì)周期性分析提供Nocron工具進(jìn)行分析。

    Facebook未來的大數(shù)據(jù)技術(shù)架構(gòu)的雛形已經(jīng)出來。首先開源的是可能替代Hadoop系統(tǒng)中MapReduce的Corona,類似于Yahoo提出的YARN。Corona最大的一個(gè)進(jìn)步是其集群管理器做到了基于CPU、內(nèi)存和其他作業(yè)處理的需求資源的管理,這可以使得Corona既可以處理MapReduce 作業(yè),也可以處理非MapReduce 作業(yè),使Hadoop集群的應(yīng)用領(lǐng)域更加廣泛。二是Facebook最新的交互式大數(shù)據(jù)查詢系統(tǒng)Presto,類似于Cloudera的Impala和Hortonworks的Stinger,解決了Facebook迅速膨脹的海量數(shù)據(jù)倉庫快速查詢需求。據(jù)Facebook稱,使用Presto進(jìn)行簡單的查詢只需要幾百毫秒,即使是非常復(fù)雜的查詢,也只需數(shù)分鐘便可完成,它在內(nèi)存中運(yùn)行,并且不會(huì)向磁盤寫入。第三是Wormhole流計(jì)算系統(tǒng),類似于Twiitter的Storm和Yahoo的Storm-YARN。第四個(gè)重要項(xiàng)目是Prism,它能夠運(yùn)行一個(gè)超大的、能夠?qū)⑷驍?shù)據(jù)中心都連起來的Hadoop集群,可能在一個(gè)數(shù)據(jù)中心宕掉的時(shí)候即時(shí)的將數(shù)據(jù)重新分布,這是一個(gè)與Google的Spanner類似的項(xiàng)目。

    Facebook的大數(shù)據(jù)技術(shù)架構(gòu)演進(jìn)路徑代表了大數(shù)據(jù)技術(shù)的發(fā)展路線,難能可貴的是,開源是Facebook一貫的路線,它和Yahoo等公司一起為大數(shù)據(jù)技術(shù)的發(fā)展作出了巨大貢獻(xiàn)。

Facebook所用的軟件

從某些方面來說,F(xiàn)acebook還是屬于LAMP類型網(wǎng)站,但是,為了配合其他大量的組件和服務(wù),F(xiàn)acebook對(duì)已有的方法,已經(jīng)做了必要的改變、拓展和修改。
比如:
Facebook依然使用PHP,但Facebook已重建新的編譯器,以滿足在其Web服務(wù)器上加載本地代碼,從而提升性能;
Facebook使用Linux系統(tǒng),但為了自身目的,也已做了必要的優(yōu)化。(尤其是在網(wǎng)絡(luò)吞吐量方面);
Facebook使用MySQL,但也對(duì)其做優(yōu)化。
還有定制的系統(tǒng),比如, Haystack — 高度可擴(kuò)展的對(duì)象存儲(chǔ),用來處理Facebook的龐大的圖片;Scribe — Facebook的日志系統(tǒng)。

下面展現(xiàn)給大家的是,全球最大的社交網(wǎng)站Facebook所使用到的軟件。

Memcached
Memcached是一款相當(dāng)有名的軟件。它是分布式內(nèi)存緩存系統(tǒng)。Facebook(還有大量的網(wǎng)站)用它作為Web服務(wù)器和MySQL服務(wù)器之間的緩存層。經(jīng)過多年,F(xiàn)acebook已在Memcached和其相關(guān)軟件(比如,網(wǎng)絡(luò)棧)上做了大量優(yōu)化工作。
Facebook運(yùn)行著成千上萬的Memcached服務(wù)器,借以及時(shí)處理TB級(jí)的緩存數(shù)據(jù)??梢赃@樣說,F(xiàn)acebook擁有全球最大的Memcached設(shè)備。

HipHop for PHP
和運(yùn)行在本地服務(wù)器上代碼相比,PHP的運(yùn)行速度相對(duì)較慢。HipHop把PHP代碼轉(zhuǎn)換成C++代碼,提高編譯時(shí)的性能。因?yàn)镕acebook很依賴PHP來處理信息,有了HipHop,F(xiàn)acebook在Web服務(wù)器方面更是如虎添翼。
HipHop誕生過程:在Facebook,一小組工程師(最初是3位)用了18個(gè)月研發(fā)而成。

Haystack
Haystack是Facebook高性能的圖片存儲(chǔ)/檢索系統(tǒng)。(嚴(yán)格來說,Haystack是一對(duì)象存儲(chǔ),所以它不一定要存儲(chǔ)圖片。)Haystack的工作量超大。Facebook上有超過2百億張圖片,每張圖片以四種不同分辨率保存,所以,F(xiàn)acebook有超過8百億張圖片。
Haystack的作用不單是處理大量的圖片,它的性能才是亮點(diǎn)。我們在前面已提到,F(xiàn)acebook每秒大概處理120萬張圖片,這個(gè)數(shù)據(jù)并不包括其CDN處理的圖片數(shù)。這可是個(gè)驚人的數(shù)據(jù)?。?!

BigPipe
BigPipe是Facebook開發(fā)的動(dòng)態(tài)網(wǎng)頁處理系統(tǒng)。為了達(dá)到最優(yōu),F(xiàn)acebook用它來處理每個(gè)網(wǎng)頁的分塊(也稱“Pagelets”)。
比如,聊天窗口是獨(dú)立檢索的,新聞源也是獨(dú)立檢索的。這些Pagelets是可以并發(fā)檢索,性能也隨之提高。如此,即使網(wǎng)站的某部分停用或崩潰后,用戶依然可以使用。

Cassandra
Cassandra是一個(gè)沒有單點(diǎn)故障的分布式存儲(chǔ)系統(tǒng)。它是前NoSQL運(yùn)動(dòng)的成員之一,現(xiàn)已開源(已加入Apache工程)。Facebook用它來做郵箱搜索。
除了Facebook之外,Cassandra也適用于很多其他服務(wù),比如Digg。

Scribe
Scribe是個(gè)靈活多變的日志系統(tǒng),F(xiàn)acebook把它用于多種內(nèi)部用途。Scribe用途:處理Facebook級(jí)別日志,一旦有新的日志分類生成,Scribe將自動(dòng)處理。(Facebook有上百個(gè)日志分類)。

Hadoop and Hive
Hadoop是款開源Map/Reduce框架,它可以輕松處理海量數(shù)據(jù)。Facebook用它來做數(shù)據(jù)分析。(前面就說到了,F(xiàn)acebook的數(shù)據(jù)量是超海量的。)Hive起源于Facebook,Hive可以使用SQL查詢,讓非程序員比較容易使用Hadoop。(注1: Hive是是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。 )


Varnish
Varnish是一個(gè)HTTP加速器,擔(dān)當(dāng)負(fù)載均衡角色,同時(shí)也用于快速處理緩存內(nèi)容。
Facebook用Varnish處理圖片和用戶照片,每天都要處理十億級(jí)的請(qǐng)求。和Facebook其他的應(yīng)用應(yīng)用一樣,Varnish也是開源的。

Facebook可以平穩(wěn)運(yùn)行,還得利于其他方面

雖然上面已經(jīng)提到了一些構(gòu)成Facebook系統(tǒng)的軟件,但是處理如此龐大的系統(tǒng),本身就是一項(xiàng)復(fù)雜的任務(wù)。所以,下面還將列出使Facebook能平穩(wěn)運(yùn)行的一些東西。

雖然這里無法過多深入硬件方面,但硬件絕對(duì)是Facebook能達(dá)到空前規(guī)模的重要因素。比如,和其他大型網(wǎng)站一樣,F(xiàn)acebook也用CDN來處理靜態(tài)內(nèi)容。Facebook還在美國西部的俄勒岡州建有一超大的數(shù)據(jù)中心,可以隨時(shí)增加服務(wù)器。
當(dāng)然了,除了前面已經(jīng)提到的,還有其他大量的軟件沒有說到。但是,希望能突出其中非常有特色的。

標(biāo)簽:滁州 吳忠 臨沂 云浮 威海 婁底 三明 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件》,本文關(guān)鍵詞  全面,了解,Facebook,的,大,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件》相關(guān)的同類信息!
  • 本頁收集關(guān)于全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章