hadoop學習筆記 HBase

2021-08-28 08:34:13 字數 1927 閱讀 7409

hadoop database,是乙個高可靠性、高效能、面向列、可伸縮的分布式儲存系統,利用hbase技術可在廉價pc server上搭建起大規模結構化儲存集群。hbase利用hadoop hdfs作為其檔案儲存系統,利用hadoop mapreduce來處理hbase來處理hbase中的海量資料,利用zookeeper作為協調工具。

主鍵用來檢索記錄的主鍵,訪問hbase table中的行

通過單個row key訪問

通過row key的range

全表掃瞄

所有行按照行鍵字典順序排序儲存

一行包括一列或者多列

列族在建立表的時候宣告,乙個列族可以包含多個列

乙個列族的所有列儲存在同乙個底層的儲存檔案中,這個儲存檔案叫做hfile

列族不能修改的過於頻繁,數量也不能太多

最基本的儲存單位

列中的資料以二進位制形式存在,沒有資料型別和長度限制

列的數量沒有限制:乙個列族中可以有數百萬個列

資料庫中沒有值的地方必須為null,但是在hbase中可以直接省略掉該列

hbase中通過row和columns確定的乙個存貯單元成為cell,每個cell都儲存著同乙個資料的多個版本;

通過時間戳來區分不同版本的值,乙個單元格的不同版本值按降序排列在一起;

時間戳預設由系統指定,也可以由使用者顯示設定;

使用者可以指定每個值所能儲存的最大版本數量,也可以新增條件,如儲存一周的資料

master可以啟動多個hmaster,通過zookeeper的master election機制保證總有乙個master執行;

為region server分配region

負責region server的負載平衡

發現失效的region server並重新分配其上的region

region server

維護master分配給它的region,處理對這些region 的io請求;

負責切分在執行過程中變得過大的region;

client包含訪問hbase的介面,client維護著一些cache來加快對hbase的訪問,比如region的位置資訊;

hbase中有兩張特殊的table,-root-和.meta

-root-記錄.meta.表的region資訊,-root-只有乙個region

.meta.記錄了使用者建立的表的region資訊,.meta.可以有多個region

zookeeper中記錄了-root-表的location

client訪問使用者資料之前需要首先首先訪問zookeeper,然後訪問-root-表,接著訪問.meta.表,最後才能找到使用者資料的位置去訪問。

hbase中擴充套件和負載均衡的基本單元稱為region,region本質上是以行鍵排序的連續儲存區間。如果region太大,系統就會把他們動態拆分,相反地,就把多個region合併,以減少儲存檔案數量

每乙個region只能由一台region伺服器(region server)載入,每一台region伺服器可以同時載入多個region。

table在行的方向上分割為多個hregion,乙個region由(startkey,endkey)表示

Hadoop學習筆記(四) HBase

hbase是乙個高可靠性 高效能 面向列 可伸縮的分布式儲存系統,它是google bigtable的開源實現,執行於hdfs檔案系統之上,利用mapreduce處理資料,使用zookeeper作為協同服務,因此可以容錯地儲存海量稀疏的資料。海量資料儲存,方便擴充套件 快速的隨機訪問,獨特的設計使得...

hadoop學習筆記之hbase原理

hbase是面向列儲存的nosql資料庫。行的每一列被劃分到某一列族,調優和儲存都是基於列族完成的。在資料庫中,行的每一列作為儲存的基本單位,其結構關係為,每一行包含乙個或多個列族,乙個列族包含多個列,這樣可通過行鍵確定行,列族名確定列族,列名確定列,從而定位到某一行的某一列。例如,行鍵為1,列族為...

Hbase 學習筆記 Hbase 概覽

hbase構建在 hdfs 之上,hbase內部管理的檔案全部儲存在hdfs 中 行鍵,table的主鍵,table中的記錄按照row key排序。型別為byte array 列簇,table在水平方向有乙個或者多個column family組成,乙個column family中可以由任意多個col...