Facebook:HBase每月存儲(chǔ)1350億條信息
也許你已經(jīng)在一些地方看到這個(gè)消息,F(xiàn)acebook 已經(jīng)開發(fā)一款新的社會(huì)化收件箱,集成了電子郵件、即時(shí)通訊、短信、文本信息、Facebook站內(nèi)信息。最重要的是,他們需要每個(gè)月存儲(chǔ) 1350 億條信息。他們?cè)谀睦锎鎯?chǔ)這些信息?Facebook的Kannan Muthukkaruppan 在《信息背后的技術(shù)》一文中給出一個(gè)令人驚奇的答案:HBase。HBase 擊敗了MySQL、Cassandra和其他一些選項(xiàng),成為了Facebook的選擇。 為什么這一選擇令人驚奇?Facebook 創(chuàng)建了Cassandra,其目的就是為了建造一個(gè)收件箱類型的應(yīng)用程序,但是最終他們發(fā)現(xiàn),Cassandra的一致性模型并不能很好地適用于Facebook 新的實(shí)時(shí)信息系統(tǒng)。另外,F(xiàn)acebook 還有一個(gè)擴(kuò)展的MySQL 架構(gòu),不過他們發(fā)現(xiàn),當(dāng)數(shù)據(jù)集和索引變大時(shí),性能會(huì)變得讓人無法忍受。另外,他們?cè)究梢宰约洪_發(fā)一套系統(tǒng),但他們最終還是選擇了 HBase。 HBase是一個(gè)可以橫向擴(kuò)張的表存儲(chǔ)系統(tǒng),能夠?yàn)榇笠?guī)模數(shù)據(jù)提供速度極快的低等級(jí)更新。這正是信息系統(tǒng)所需要的功能。另外,HBase是一個(gè)基于列的鍵值存儲(chǔ)系統(tǒng),并且是構(gòu)建于 BigTabe 模型之上。HBase善于根據(jù)鍵訪問行,以及對(duì)于一系列的行進(jìn)行掃描和過濾。同樣,這也是信息系統(tǒng)所需要的功能。不過,它并不支持復(fù)雜查詢。查詢通常交給分析工具處理,比如 Hive,F(xiàn)acebook創(chuàng)建了Hive,目的是處理他們?nèi)萘扛哌_(dá)多個(gè)拍字節(jié)(petabyte)的數(shù)據(jù)倉庫。同時(shí),Hive 是基于Hadoop的文件系統(tǒng)HDFS,而HBase使用的也是這一文件系統(tǒng)。 Facebook 選擇了HBase,因?yàn)樗麄儗?duì)他們的應(yīng)用進(jìn)行了監(jiān)視,并明白他們到底需要什么。他們所需要的是一個(gè)可以處理以下兩種類型的數(shù)據(jù)模式: 1. 一小組經(jīng)常變化的臨時(shí)數(shù)據(jù); 2. 一組不斷增加但很少訪問的數(shù)據(jù)。 這很有道理。當(dāng)前收件箱里的郵件你只會(huì)看一次,之后你很少會(huì)再去翻看這些電子郵件。這兩種類似的數(shù)據(jù)是如此不同,所以有人也許在想應(yīng)該使用兩種不同的系統(tǒng)。不過,很明顯,HBase 能夠很好地處理這兩種類型的數(shù)據(jù)。他們?nèi)绾翁幚沓R?guī)的搜索功能,尚不清楚,因?yàn)檫@并非 HBase 的優(yōu)勢所在,不過,HBase 可以集成多個(gè)搜索系統(tǒng)。 Facebook 系統(tǒng)的一些關(guān)鍵點(diǎn): ● HBase: ○ 具有比Cassandra更簡潔的一致性模型。 ○ 對(duì)于他們的數(shù)據(jù)模式具有很好的擴(kuò)展能力和處理能力。 ○ 大多數(shù)功能能夠滿足他們的需求:自動(dòng)加載平衡和故障轉(zhuǎn)移、壓縮支持功能、單個(gè)服務(wù)器的多碎片功能等。 ○ HBase 所使用的文件系統(tǒng)HDFS,支持復(fù)制、端對(duì)端校驗(yàn)和,以及自動(dòng)再次平衡。 ○ Facebook 的運(yùn)營團(tuán)隊(duì)具有豐富的HDFS使用經(jīng)驗(yàn),因?yàn)镕acebook是Hadoop的大用戶,而Hadoop使用 HDFS 作為它的分布式文件系統(tǒng)。 ● Haystack 用于存儲(chǔ)附件。 ● 從無到有,編寫可自定義的應(yīng)用程序服務(wù)器,其目的是為了滿足多個(gè)不同來源流入的大量信息。 ● 用戶發(fā)現(xiàn)服務(wù)(user discovery service)構(gòu)建于 Zookeeper 之上。 ● 對(duì)于以下功能可訪問架構(gòu)服務(wù):電子郵件賬號(hào)驗(yàn)證、好友關(guān)系、隱私?jīng)Q策以及發(fā)送決策(通過聊天工具或短信發(fā)送一條消息?) ● 保持小團(tuán)隊(duì)做大事情的一貫作風(fēng),15 位工程師在一年內(nèi)發(fā)布了 20 項(xiàng)新的架構(gòu)服務(wù)。 ● Facebook將不會(huì)對(duì)單個(gè)數(shù)據(jù)庫平臺(tái)進(jìn)行標(biāo)準(zhǔn)化,對(duì)于不同的任務(wù)他們將使用不同的平臺(tái)。 Facebook 通過選擇HBase將極大地推動(dòng)該系統(tǒng)的采用,同時(shí)Facebook具有豐富的 HDFS/Hadoop/Hive 使用經(jīng)驗(yàn)。想到這些,就讓人興奮的無法入睡。這是任何一款產(chǎn)品的夢想:成為另一個(gè)非常流行的產(chǎn)品的搭檔,并期待成為其生態(tài)系統(tǒng)的一部分。這正是 HBase 所取得的成功。HBase 已經(jīng)在許多方面去多了不錯(cuò)的成績:實(shí)時(shí)、分布、線性擴(kuò)展、健壯、BigData、開源、鍵值、面對(duì)列,我們將會(huì)看到 HBase 變得更加流行,尤其是它已經(jīng)獲得了 Facebook 的眷顧和青睞。 HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于Chang et al所撰寫的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的 Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫.另一個(gè)不同的是HBase基于列的而不是基于行的模式。HBase使用和Bigtable非常相同的數(shù)據(jù)模型。用戶存儲(chǔ)數(shù)據(jù)行在一個(gè)表里。一個(gè)數(shù)據(jù)行擁有一個(gè)可選擇的鍵和任意數(shù)量的列。表是疏松的存儲(chǔ)的,因此用戶可以給行定義各種不同的列。HBase主要用于需要隨機(jī)訪問,實(shí)時(shí)讀寫你的大數(shù)據(jù)(Big Data)。 HBase架構(gòu)圖 來自: caifu.zol.com.cn
|
|
8 樓 soaFocus 2011-01-24 17:52 引用
NameNode掛掉,集群可以完蛋了
fb可是對(duì)外宣稱一次都不會(huì)掛的!
7 樓 cwalet 2010-11-25 11:56 引用
6 樓 cysg 2010-11-25 00:56 引用
[*]
5 樓 kongzhizhen 2010-11-24 22:15 引用
4 樓 yuyue618 2010-11-24 20:17 引用
3 樓 diggywang 2010-11-22 11:12 引用
2 樓 lmxbitihero 2010-11-22 10:36 引用
1 樓 srdrm 2010-11-22 10:28 引用