溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件

發(fā)布時間:2021-09-26 15:15:14 來源:億速云 閱讀:231 作者:iii 欄目:建站服務(wù)器

這篇文章主要講解了“Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件”吧!

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

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

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

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

    Facebook未來的大數(shù)據(jù)技術(shù)架構(gòu)的雛形已經(jīng)出來。首先開源的是可能替代Hadoop系統(tǒng)中MapReduce的Corona,類似于Yahoo提出的YARN。Corona最大的一個進步是其集群管理器做到了基于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進行簡單的查詢只需要幾百毫秒,即使是非常復(fù)雜的查詢,也只需數(shù)分鐘便可完成,它在內(nèi)存中運行,并且不會向磁盤寫入。第三是Wormhole流計算系統(tǒng),類似于Twiitter的Storm和Yahoo的Storm-YARN。第四個重要項目是Prism,它能夠運行一個超大的、能夠?qū)⑷驍?shù)據(jù)中心都連起來的Hadoop集群,可能在一個數(shù)據(jù)中心宕掉的時候即時的將數(shù)據(jù)重新分布,這是一個與Google的Spanner類似的項目。

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

Facebook所用的軟件

從某些方面來說,F(xiàn)acebook還是屬于LAMP類型網(wǎng)站,但是,為了配合其他大量的組件和服務(wù),F(xiàn)acebook對已有的方法,已經(jīng)做了必要的改變、拓展和修改。
比如:
Facebook依然使用PHP,但Facebook已重建新的編譯器,以滿足在其Web服務(wù)器上加載本地代碼,從而提升性能;
Facebook使用Linux系統(tǒng),但為了自身目的,也已做了必要的優(yōu)化。(尤其是在網(wǎng)絡(luò)吞吐量方面);
Facebook使用MySQL,但也對其做優(yōu)化。
還有定制的系統(tǒng),比如, Haystack — 高度可擴展的對象存儲,用來處理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運行著成千上萬的Memcached服務(wù)器,借以及時處理TB級的緩存數(shù)據(jù)。可以這樣說,F(xiàn)acebook擁有全球最大的Memcached設(shè)備。
Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件

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

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

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

Cassandra
Cassandra是一個沒有單點故障的分布式存儲系統(tǒng)。它是前NoSQL運動的成員之一,現(xiàn)已開源(已加入Apache工程)。Facebook用它來做郵箱搜索。
除了Facebook之外,Cassandra也適用于很多其他服務(wù),比如Digg。
Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件

Scribe
Scribe是個靈活多變的日志系統(tǒng),F(xiàn)acebook把它用于多種內(nèi)部用途。Scribe用途:處理Facebook級別日志,一旦有新的日志分類生成,Scribe將自動處理。(Facebook有上百個日志分類)。
Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件

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的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進行運行。 )

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

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

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

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

感謝各位的閱讀,以上就是“Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Facebook有哪些大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI