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