1. 程式人生 > 實用技巧 >Apache HBase介紹

Apache HBase介紹

超級詳細,且行文結構很好的文章

一條資料的HBase之旅,簡明HBase入門教程-開篇
Hbase技術詳細學習筆記

1、簡介

Apache HBase是基於Hadoop構建的一個分散式的、可伸縮的海量資料儲存系統,其底層用HDFS實現資料儲存

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並不是取代關係,而是一種補充。