濮阳杆衣贸易有限公司

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

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

熱門(mén)標(biāo)簽:七臺(tái)河商家地圖標(biāo)注注冊(cè) 百度地圖標(biāo)注不能編輯 威海語(yǔ)音外呼系統(tǒng)廠家 百度高德騰訊地圖標(biāo)注公司 徐州穩(wěn)定外呼系統(tǒng)代理商 個(gè)人家庭地圖標(biāo)注教程 廣安電銷(xiā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ù)開(kāi)源項(xiàng)目的最大貢獻(xiàn)者之一。Facebook是2007年前后正式轉(zhuǎn)向Hadoop計(jì)算框架,隨之它向Apache基金會(huì)貢獻(xiàn)了大名鼎鼎的Hive、ZooKeeper、Scribe、Cassandra等開(kāi)源工具,當(dāng)前Facebook的開(kāi)源進(jìn)程仍在積極推進(jìn)著。Facebook大數(shù)據(jù)技術(shù)架構(gòu)經(jīng)歷了三個(gè)演變階段。

    Facebook早期的大數(shù)據(jù)技術(shù)架構(gòu)是建立在Hadoop、HBase、Hive、Scribe等開(kāi)源工具基礎(chǔ)上的。日志數(shù)據(jù)流從HTTP服務(wù)器產(chǎn)生,通過(guò)日志收集系統(tǒng)Scribe耗費(fèi)秒級(jí)時(shí)間傳送到共享存儲(chǔ)NFS文件系統(tǒng),然后通過(guò)小時(shí)級(jí)的Copier/Loader(即MapReduce作業(yè))將數(shù)據(jù)文件上傳到Hadoop。數(shù)據(jù)摘要通過(guò)每天例行的流水作業(yè)產(chǎn)生,它是基于Hive的類(lèi)SQL語(yǔ)言開(kāi)發(fā),結(jié)果會(huì)定期會(huì)更新到前端的Mysql服務(wù)器,以便通過(guò)OLTP工具產(chǎn)生報(bào)表。Hadoop集群節(jié)點(diǎn)有3000個(gè),擴(kuò)展性和容錯(cuò)性方面的問(wèn)題能夠很好地解決,但是早期系統(tǒng)的主要問(wèn)題是整體的處理延遲較大,從日志產(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)用于聚合來(lái)自大量HTTP服務(wù)器的日志數(shù)據(jù)。Thrift是Facebook提供的軟件框架,用于跨語(yǔ)言的服務(wù)開(kāi)發(fā),能夠在C 、Java、PHP 、Python和Ruby等語(yǔ)言之間實(shí)現(xiàn)無(wú)縫的支持。采用Thrift RPC來(lái)調(diào)用Scribe日志收集服務(wù)進(jìn)行日志數(shù)據(jù)匯總。Scribe Policy是日志流量和模型管理節(jié)點(diǎn),將元數(shù)據(jù)傳送給Scribe客戶(hù)端和Scribe HDFS,采集的日志數(shù)據(jù)存儲(chǔ)在Scribe HDFS。Facebook對(duì)早期系統(tǒng)優(yōu)化后的數(shù)據(jù)通道稱(chēng)為Data Freeway,能夠處理峰值9GB/s的數(shù)據(jù)并且端到端的延遲在10s以?xún)?nèi),支持超過(guò)2500種的日志種類(lèi)。Data Freeway主要包括4個(gè)組件,Scribe、Calligraphus、Continuous Copier和PTail。Scribe用于客戶(hù)端,負(fù)責(zé)通過(guò)Thrift RPC發(fā)送數(shù)據(jù);Calligraphus在中間層梳理數(shù)據(jù)并寫(xiě)到HDFS,它提供了日志種類(lèi)的管理,利用Zookeeper進(jìn)行輔助;Continuous Copier將文件從一個(gè)HDFS拷貝到另一個(gè)HDFS;PTail并行地tail多個(gè)HDFS上的目錄,并寫(xiě)文件數(shù)據(jù)到標(biāo)準(zhǔn)輸出。在當(dāng)前架構(gòu)中,一部分?jǐn)?shù)據(jù)處理仍然以批處理的方式通過(guò)MapReduce進(jìn)行小時(shí)級(jí)的處理,存儲(chǔ)在中央的HDFS,每天通過(guò)Hive進(jìn)行分析處理。另一部分接近實(shí)時(shí)的數(shù)據(jù)流則通過(guò)Puma來(lái)進(jìn)行分鐘級(jí)的處理。Facebook對(duì)專(zhuān)門(mén)分析提供Peregrine(Hipal)工具、對(duì)周期性分析提供Nocron工具進(jìn)行分析。

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

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

Facebook所用的軟件

從某些方面來(lái)說(shuō),F(xiàn)acebook還是屬于LAMP類(lèi)型網(wǎng)站,但是,為了配合其他大量的組件和服務(wù),F(xiàn)acebook對(duì)已有的方法,已經(jīng)做了必要的改變、拓展和修改。
比如:
Facebook依然使用PHP,但Facebook已重建新的編譯器,以滿(mǎn)足在其Web服務(wù)器上加載本地代碼,從而提升性能;
Facebook使用Linux系統(tǒng),但為了自身目的,也已做了必要的優(yōu)化。(尤其是在網(wǎng)絡(luò)吞吐量方面);
Facebook使用MySQL,但也對(duì)其做優(yōu)化。
還有定制的系統(tǒng),比如, Haystack — 高度可擴(kuò)展的對(duì)象存儲(chǔ),用來(lái)處理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)過(guò)多年,F(xiàn)acebook已在Memcached和其相關(guān)軟件(比如,網(wǎng)絡(luò)棧)上做了大量?jī)?yōu)化工作。
Facebook運(yùn)行著成千上萬(wàn)的Memcached服務(wù)器,借以及時(shí)處理TB級(jí)的緩存數(shù)據(jù)。可以這樣說(shuō),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很依賴(lài)PHP來(lái)處理信息,有了HipHop,F(xiàn)acebook在Web服務(wù)器方面更是如虎添翼。
HipHop誕生過(guò)程:在Facebook,一小組工程師(最初是3位)用了18個(gè)月研發(fā)而成。

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

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

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

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

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


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

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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件》,本文關(guān)鍵詞  全面,了解,Facebook,的,大,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于全面了解Facebook的大數(shù)據(jù)處理架構(gòu)及應(yīng)用的軟件的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    新昌县| 榆社县| 临泽县| 津南区| 穆棱市| 四子王旗| 高密市| 嘉兴市| 肃宁县| 南充市| 靖安县| 呼伦贝尔市| 合肥市| 库尔勒市| 仁怀市| 凌源市| 临沂市| 桃园市| 绥中县| 南丰县| 合江县| 金坛市| 湘阴县| 夹江县| 伊宁市| 临洮县| 麟游县| 琼结县| 息烽县| 永新县| 鄂托克前旗| 句容市| 宜兰县| 龙岩市| 新巴尔虎左旗| 桂平市| 聊城市| 南溪县| 柞水县| 彰化县| 高雄县|