http://www.cnblogs.com/LBSer/p/3330383.html
9月初淘寶飛芃做了一個關於HBase的分享,講的激情飛揚,讓聽眾收益匪淺,現做下簡單總結。
HBase是一個NoSQL資料庫,在國內外被廣泛使用,是bitTable的開源實現,主要由FaceBook、Cloudera、Yahoo!和ebay等大公司貢獻,國內貢獻主要是華為和阿里系,其中淘寶還有一個程式碼commiter。飛芃首先對HBase做了簡要介紹,著重強調它的一些特點。之後又講了Hbase不好的地方,以及使用的注意點,最後介紹了HBase在淘寶的一些應用。
1. HBase的特點
a)強一致性:同一行資料讀寫在同一個regionserver上
b)水平伸縮:region的自動分裂以及master的balance
c)行事務:同一行的寫入是原子的,這是由於同一行資料讀寫在同一個regionserver上決定的
d)支援範圍查詢
e)高效能隨即寫
上面的特點讓我覺得HBase是Hash和樹的這兩種資料結構的結合體。首先HBase使用了Hash,比如根據rowkey獲得value,還使用了樹,正因為是棵樹,所以具有分裂、支援範圍查詢等特性。
2.HBase不好的地方
a)沒有二級索引,使用時需要將自己寫索引表,這個索引表也存在HBase裡
b)沒有線上備份與還原策略
c)不穩定,使用有風險,比如NameNode單點,一旦掛了,整個HBase叢集掛了,RegionServer掛掉後需要一些時間切換,Region分裂時服務不可用
3.HBase在淘寶的應用
個人感覺是最精華的部分,HBase在淘寶裡用在三個地方:
a)實時推薦、實時報表、實時計費
這類應用的特點是大量資料的實時寫入以及讀取
b)大資料量型別專案
比如歷史類或需要長期儲存的資料
c)二次分析型別專案
Hadoop叢集做粗粒度分析,線上做二次分析,比如資料魔方。
4.討論
會後討論的時候,飛芃著重強調了HBase的不穩定,需要專業團隊維護,比如淘寶有一百多人的技術團隊專門維護Hadoop和HBase叢集,而且使用淘寶內部的HBase版本。針對一些同學提出的業務需求是否適合HBase的問題,飛芃建議要綜合考慮應用規模等因素,但是如果選擇了HBase,必須要有團隊專門維護。