初識HBase

1.1HBase概念

HBase是一個分佈式(有角色,搭建集羣)面向列數據庫

面向行:面向行的特點是,即是某一行的某一列沒有存儲數據,那麼這一列也會佔用空間,另外在磁盤的存儲上,每一行的各個列的數據也都是順序存儲在一起的。

面向列:每一行的數據可以有不同的列,有多少列就佔用多少存儲空間,沒有的列就不佔用存儲空間。在磁盤的存儲上,是以列族存儲的。

HBase與hive的比較

hive數據庫分析工具,將元數據存儲在mysql中,將業務數據存儲在hdfs上

HBase數據庫,業務數據也是存儲在hdfs的,元數據是由它本身管理的

HBase與mysql相比,具有以下特點

  1. 能存儲的數據量大
  2. 讀(150w次/s)寫(10w次/s)的速度快

1.2HBase的特點

  1. 海量存儲

能夠處理PB級別的海量數據,並在採用廉價的pc端的情況下,能夠在幾十到幾百毫秒之間返回數據。這一特點與HBase較好的擴展性有很大的聯繫。

   2.列式存儲

這裏所說的列式存儲就是列族存儲,HBase是根據列族來存儲數據的。

列族(column family):就是列的分類,列族在創建表的時候必須指定,每一個列族中可以包含多個列,列可以在插入數據的時候指定。

在插入數據時,必須指定行鍵(rowkey),行鍵,類似於mysql中的主鍵,用來表示某條數據的唯一性,相同的行鍵,就代表是同一條數據。

 3.極易擴展

HBase的擴展主要體現在兩個方面:

一個是基於存儲的擴展(HDFS)。也就是隻要部署的機器多,HDFS存儲的數據就多,那麼HBase存儲的數據也多。

另一個是基於上層處理能力(RegionServer)的擴展,當存儲的數據多時,相應的也應該有多個能夠處理這些數據的進程RegionServer。

 

RegionServer:和HDFS中的DataNode與YARN中的NodeManager的地位相似,是具體幹活的小弟。

 

HBase是典型的master/slave(主從)架構,也是分角色的,老大是Hmaster或者Master,具體幹活的小弟是HRegionServer或者RegionServer。

【注意】在部署HBase集羣的時候,要將HBase與HDFS部署在一起,因爲HBase是基於HDFS的,部署在一起,可以提高HBase的讀寫速度,即數據本地化:數據放在本地處理。

 

HBase的表是由Region(區、片)組成的,當HBase的表越來越大的時候,表就會分爲若干個Region,Region是由RegionServer負責管理的,一個RegionServer可以管理多個Region(這些Region可以是同一個表中的多個Region,也可以是不同表中的Region)

一個表由一個Region或者多個Region組成;

一個Region只能由一個RegionServer管理。

4.高併發

HBase要將數據寫到HDFS上,再由HDFS寫到磁盤上,過程雖然繁瑣,但是單個IO延遲下降的並不多,主要突出了HBase框架的優越性,能夠獲得高併發,低延遲的服務。

5.稀疏

稀疏主要是指列的靈活性,可以指定任意多個的列,當列爲空的時候,不佔用任何的存儲空間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章