隨著Facebook上市,其大數(shù)據(jù)模式越來(lái)越受到人們的重視,剛剛在俄勒岡州prineville新建的Facebook數(shù)據(jù)中心,更是號(hào)稱(chēng)全球能效最高的數(shù)據(jù)中心。Facebook的數(shù)據(jù)業(yè)務(wù)具體有哪些特色?下面略做盤(pán)點(diǎn)。
Timeline
2011年12月發(fā)布的Timeline主要針對(duì)“Profile”進(jìn)行調(diào)整。Facebook Vrofile相當(dāng)于個(gè)人的檔案和資料,通俗來(lái)說(shuō)就是個(gè)人主頁(yè)。新的個(gè)人Profile比過(guò)去版本更有視覺(jué)沖擊力。Facebook推出新的Timeline界面,它組織個(gè)人在Facebook上發(fā)布的信息,比如狀態(tài)、圖片、視頻等等,以更加結(jié)構(gòu)化的方式展現(xiàn)出來(lái),就像一本放在Facebook上的自傳。
Like按鈕
該功能可以讓用戶標(biāo)注自己喜歡的頁(yè)面,并將這些頁(yè)面收錄至Facebook的搜索結(jié)果中,這一功能與谷歌利用頁(yè)面相互之間的鏈接關(guān)系來(lái)決定搜索排名類(lèi)似。Facebook表示:“只要用戶點(diǎn)擊了‘Like’按鈕,所有的支持Open Graph協(xié)議的網(wǎng)站都將顯示在搜索引擎中。”facebook將借助Open Graph協(xié)議將搜索引擎的索引范圍進(jìn)一步擴(kuò)大,從而對(duì)谷歌產(chǎn)生威脅。
Memcached
是一個(gè)分布式的內(nèi)存緩存系統(tǒng),F(xiàn)acebook用它作為Web服務(wù)器和MySQL服務(wù)器之間的緩存層(因?yàn)閿?shù)據(jù)庫(kù)訪問(wèn)相對(duì)比較慢)。多年來(lái),F(xiàn)acebook已經(jīng)對(duì)Memcached和它的周邊軟件進(jìn)行了很多優(yōu)化,比如對(duì)network stack的優(yōu)化。Facebook每時(shí)每刻都有數(shù)10TB的數(shù)據(jù)緩存在數(shù)千臺(tái)Memcached服務(wù)務(wù)器上。它可能是世界上最大的Memcached服務(wù)器集群了。
Haystack
Haystack是Facebook的高性能圖片存取系統(tǒng),但嚴(yán)格來(lái)說(shuō),它并不僅限于存儲(chǔ)照片。它要管理超過(guò)200億張上傳的照片,并且每一片照片被保存為四種不同的分辨率,因此有超過(guò)800億張照片。它不僅要能處理上億的照片,而且性能也是至關(guān)重要的。Facebook每秒鐘要處理約120萬(wàn)張照片,而且不包括CDN上的,這是—個(gè)驚人的數(shù)字。
Cassandra
cassandra是一個(gè)可以避免單點(diǎn)故障的分布式存儲(chǔ)系統(tǒng)。它是NoSQL運(yùn)動(dòng)的一個(gè)典范,并已開(kāi)放源代碼。它甚至成為一個(gè)Apache項(xiàng)目。Facebook在收件箱搜索中使用它,除了Facebook,其他網(wǎng)站也在使用它。
Hadoop架構(gòu)
Hadoop是當(dāng)今在分布式/并行計(jì)算中最流行的開(kāi)源工具,他不僅僅可以用于存儲(chǔ)的分布式文件系統(tǒng),可以用來(lái)構(gòu)建大量集群計(jì)算機(jī)以實(shí)現(xiàn)大規(guī)模的數(shù)據(jù)集分布式存儲(chǔ)和存檔處理。Facebook是Hadoop的忠實(shí)用戶和貢獻(xiàn)源碼的參與者,并且Facebook還貢獻(xiàn)了Hive和Thrift兩個(gè)重要Hadoop組件,目前已經(jīng)收錄在Apache的Hadoop的子項(xiàng)目中。
Hive
Hive起源于Facebook,它使得針對(duì)Hadoop進(jìn)行SQL查詢成為可能,從而非程序員也可以方便地使用。Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供完整的SQL查詢功能,可以將SQL語(yǔ)句轉(zhuǎn)換換為MdpReduce任務(wù)運(yùn)行。
Zookeeper、Thrift
Hadoop中的子項(xiàng)目還包括Zookeeper分布式鎖,提供類(lèi)似Google Chubby的功能。Thrift是Hadoop的跨語(yǔ)言接口,可以支持多種語(yǔ)言,例如php和ruby。
BigPipe
BigPipe是Facebook開(kāi)發(fā)的的動(dòng)態(tài)網(wǎng)頁(yè)處理系統(tǒng)。為了獲得最佳性能,F(xiàn)acebook用它來(lái)按分塊處理每個(gè)網(wǎng)頁(yè)(稱(chēng)為“pagelets”)。例如,聊天窗口,新聞Feed等是通過(guò)分塊分開(kāi)進(jìn)行傳輸?shù)摹_@些pagelets可以并行工作,不僅可以提高性能,而且即使其中一部分失效或中斷,也不影響用戶的正常訪問(wèn)。