HBase學習筆記

1.Hbase是一個用java語言實現的,構建於Hadoop分佈式系統(HDFS)上的分佈式數據庫。java

2.HBase的特色:數據庫

  a:海量存儲架構

  b:列式存儲(能夠針對列進行權限控制和讀取)分佈式

  c:多版本:根據時間戳存儲不一樣版本的數據oop

  d:稀疏性:blog

        1. 爲空的列不佔用實際存儲空間權限控制

         2.傳統數據庫爲空的列依然要佔用存儲空間io

  e:高擴展,高可用性:底層基於HDFS,高可用和擴展性獲得了保障。系統架構

3.HBase中表結構模型table

  a:表(table):用於存儲管理數據,具備稀疏性,面向列的特色。

  b:行鍵(RowKey):相似於MYSQL中的主鍵,HBase根據行鍵來快速檢索數據,一個行鍵對應一條記錄。與MYSQL主鍵不一樣的是,HBase的行鍵是自然固有的,每一行數據都存在行鍵。

  c:列簇(ColumnFamily):是列的集合。列族在表定義是須要指定,而列在插入數據是動態指定。列中的數據都是以二進制的形式存在,沒有數據類型。

 d:時間戳(TimeStamp):是列的一個屬性,是一個64位整數。由行鍵和列肯定的單元格,能夠存儲多個數據,每一個數據含有時間戳屬性,數據具備版本特性。能夠根據版本或時間戳來指定查詢歷史版本數據,若是都不指定,則默認返回最新版本的數據。

4.HBase系統架構

能夠看出HBase須要依賴Zookeepeer和HDFS。

  a:Zookeeper

      1:保證任什麼時候候,集羣中只有一個running master,避免單點問題;

       2:存儲全部Region的尋址入口,包括表地址,HMaster地址;

      3:實時監控Region Server的狀態,將Region Server的上線和下線信息,實時通知通知給Master;

     4:存儲Hbase的schema,包括有哪些table,每一個table有哪些column family

  b:Master:能夠啓動多個HMaster,經過Zookeeper的Master Election機制保證總有一個Master運行。

  c:RegionServer:HBase中最核心的模塊,主要負責響應用戶的I/O請求,向HDFS文件系統中讀寫數據。

  d:HDFS:負責存儲數據。

相關文章
相關標籤/搜索