Apache HBase介紹
超級詳細,且行文結構很好的文章
一條資料的HBase之旅,簡明HBase入門教程-開篇
Hbase技術詳細學習筆記
1、簡介
Apache HBase是基於Hadoop構建的一個分散式的、可伸縮的海量資料儲存系統,其底層用HDFS實現資料儲存
。
1. HBase中的資料為何不直接存放於HDFS之上?
HBase中儲存的海量資料記錄
,通常在幾百Bytes到KB級別
,如果將這些資料直接儲存於HDFS之上,會導致大量的小檔案產生
,為HDFS的元資料管理節點(NameNode)帶來沉重的壓力
。
HBase常被用來存放一些海量的(通常在TB級別以上)結構比較簡單的資料,如歷史訂單記錄,日誌資料,監控Metris資料等等,HBase提供了簡單的基於Key值的快速查詢能力。
NoSQL領域,資料表的模樣卻往往換成了另外一種"畫風",這些"雜亂無章"的列所構成的多行資料,被稱之為一個"稀疏矩陣",而上圖中的每一個"黑塊塊",在HBase中稱之為一個KeyValue。
2、適用場景
1. 什麼樣的資料適合用HBase來儲存?
HBase的資料模型比較簡單,資料按照RowKey排序存放,適合HBase儲存的資料,可以簡單總結如下:
-
以實體為中心的資料
實體可以包括但不限於如下幾種:描述這些實體的,可以有基礎屬性資訊、實體關係(圖資料)、所發生的事件(如交易記錄、車輛軌跡點)等等。- 自然人/賬戶/手機號/車輛相關資料
- 使用者畫像資料(含標籤類資料)
- 圖資料(關係類資料)
-
以事件為中心的資料
- 監控資料
- 時序資料
- 實時位置類資料
- 訊息/日誌類資料
上面所描述的這些資料,有的是結構化資料,有的是半結構化或非結構化資料。
HBase的“稀疏矩陣”設計,使其應對非結構化資料儲存時能夠得心應手,但在我們的實際使用者場景中,結構化資料儲存依然佔據了比較重的比例。
2. 既然HBase也是一個數據庫,能否用它將現有系統中昂貴的Oracle替換掉?
HBase擅長於儲存結構簡單
的海量資料
但索引能力有限
,而Oracle等傳統關係型資料庫(RDBMS)能夠提供豐富的查詢能力
,但卻疲於應對TB級別
的海量資料儲存
,HBase對傳統的RDBMS並不是取代關係,而是一種補充。