NoSQL之HBase

zhanlijun發表於2013-09-20

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,必須要有團隊專門維護。

相關文章