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...