足球半全场赔率:hbase系列之:初識hbase

發布日期:2019-07-04

外围足彩半全场玩法 www.ojqtlm.com.cn 一、概述

  在hadoop生態圈里,hbase可謂是鼎鼎大名。江湖傳言,hbase可以實現數十億行X數百萬列的實時查詢,可橫向擴展存儲空間。如果傳言為真,那得好好了解了解hbase。本文從概念上介紹hbase,稍微有點抽象,但這是學習hbase必須要了解的基礎理論;如果想直接了解hbase的實操內容,可跳過本博文。

二、hbase介紹

  先看看hbase官方的介紹:hbase是hadoop數據庫,是一個分布式的,可擴展的大數據存儲庫;當需要對大數據進行隨機,實時讀/寫訪問時,可以使用hbase數據庫;hbase的目標是在商業硬件集群上托管非常大的表-數十億行X百萬列;hbase是一個開源的、分布式的、版本化的非關系型數據庫,模仿Google的bigtable;正如bigtable利用Google文件系統提供分布式數據存儲一樣,hbase在hadoop和hdfs上提供類似的功能。

  通俗來說:

  1、Hbase是一個在HDFS(也可以是普通文件系統)上開發的面向列的分布式數據庫,如果需要實時地隨機訪問超大規模數據集,可以使用HBASE。

  2、Hbase能夠簡單的通過增加節點來達到現行擴展。

  3、Hbase不是關系型數據庫,不支持SQL。

三、hbase的基本概念

  1、Hbase表中的單元格(cell)有版本號,默認情況下自動分配版本號,為數據插入Hbase表單元格的時間戳,單元格的內容是未經解釋的字節數組。  2、Hbase中的行是根據鍵(row key)進行排序的。  3、Hbase中只允許主鍵建立索引,可以通過幾種策略來優化其他字段的查詢性能。  4、建表時必須先指定列族,表建好之后列族不可增加,列族中的列可以根據實際需要增加。  5、物理上,所有列族成員都在一起存儲,由于調優都是居于列族的,所以所有列族成員都應該有相同的訪問模式和大小特征。

  6、區域:

   ?、?、hbase自動把表水平劃分成區域,每個區域由它所屬的表、所包含的第一行和最后一行(不包括)三個屬性來表示;   ?、?、區域是在hbase集群上分布數據的最小單位;   ?、?、一個太大的而無法放在單臺服務器上的表會被放到服務器集群上,其中每個節點都負責管理表所有區域的一個

  7、加鎖:無論設計多少列,hbase對行的更新都是“原子的”。

四、hbase的作用

  1、海量數據存儲:能夠存儲百億行數據和百萬列數據。

  2、準實時查詢:能夠在百毫秒內返回查詢數據。

五、hbase的特點

  1、容量大:Hbase單表可以有百億行、百萬列,數據矩陣橫向和縱向兩個維度所支持的數量級都非常具有彈性。(一般關系型數據庫行在500萬以下,列在30列一下。)  2、面向列:Hbase是面向列的存儲和權限控制,并支持獨立檢索。列式存儲,其數據在表中按照某列存儲的,這樣在查詢只需要少數幾個字段時,能大大減少讀取的數據量。(實時動態增加列;單獨對某一列做一些操作)  3、多版本:Hbase每一列的數據存儲有多個Version。  4、稀疏性:為空的列并不占用存儲空間,表可以設計得非常稀疏。  5、擴展性:底層依賴于hdfs。如果磁盤空間不夠時,增加datanode節點或增加datanode節點的存儲即可。  6、高可靠性:WAL機制保證了數據寫入時不會因集群異常而導致寫入數據丟失:Replication機制保證了在集群出現嚴重問題時,數據不會發生丟失或損壞。而且Hbase底層使用hdfs,hdfs本身也有備份機制。  7、高性能:底層的LSM數據結構和Rowkey有序排列等架構上的獨特設計,使得Hbase有非常高的寫入性能。region切分、主鍵索引和緩存機制使得Hbase在海量數據下具備一定的隨機讀取性,該性能針對Rowkey的查詢可以達到毫秒級別。

六、hbase與關系型數據庫的簡要比較

七、hbase架構

hbase架構圖如下圖所示:

  Master

    ? ?Master負責監視集群中的所有RegionServer實例、轉移故障RegionServer、劃分區域,并且是所有元數據更改的接口。在分布式集群中,Master通常運行在NameNode上運行。集群中可以存在多個Master(multi-Master),但是只有一個Master處于活躍狀態(active),其他Master處于備份狀態(Backup),如果活躍Master宕機或者發生異常,將從備份Master中選舉出新的活躍Master來接管集群。

? ? ? ?hdfs

? ? ? ? ? ? ? ? ?通常,Hbase使用hdfs來持久化數據。默認情況下,hbase是把數據存儲在本地文件系統中,但是,如果要使用Hbase集群,就需要把Hbase的存儲位置指向hdfs集群。

? ? ? ?zookeeper

? ??   ? ?Hbase依賴zookeeper來實現分布式協調。zookeeper管理hbase:meta目錄表的位置以及當前集群的主機地址等信息;當客戶端要連接到Hbase集群時,需要通過zookeeper來連接hbase集群。

  RegionServer

? ??  ? ?RegionServer負責服務和管理區域(region),還負責區域的劃分并通知Hbase Master有了新的子區域;RegionServer包含多個region,是直接存儲數據的地方,在分布式集群中,RegionServer在DataNode上運行。

八、hbase應用場景

  hbase可以用在交通、金融、電商、移動等超大規模數據的領域。

九、總結

  hbase為億級數據秒級響應而生,從底層架構到存儲模式,專為超大規模數據的存儲而設計,但是查詢條件不能多樣化。在選擇hbase作為數據庫時,應考慮其利弊,適應用場景慎重選擇。

?

, 1, 0, 9);