1.hbase簡介
hbase – hadoop database,是乙個高可靠性、高效能、面向列、可伸縮的分布式儲存系統,利用hbase技術可在廉價pc server上搭建起大規模結構化儲存集群。hbase利用hadoop hdfs作為其檔案儲存系統,利用hadoop mapreduce來處理hbase中的海量資料,利用zookeeper作為協調工具。
2.hbase(nosql)的資料模型
2.1 表(table),是儲存管理資料的。
2.2 行鍵(row key),類似於mysql中的主鍵。行鍵是hbase表天然自帶的。
2.3 列族(column family),列的集合。
hbase中列族是需要在定義表時指定的,列是在插入記錄時動態增加的。
hbase表中的資料,每個列族單獨乙個檔案。
2.4 時間戳(timestamp),列(也稱作標籤、修飾符)的乙個屬性。
行鍵和列確定的單元格,可以儲存多個資料,每個資料含有時間戳屬性,資料具有版本特性。
如果不指定時間戳或者版本,預設取最新的資料。
2.5 儲存的資料都是位元組陣列。
2.6 表中的資料是按照行鍵的順序物理儲存的。
3.hbase的物理模型
3.1 hbase是適合海量資料(如20pb)的秒級簡單查詢的資料庫。
3.2 hbase表中的記錄,按照行鍵進行拆分, 拆分成乙個個的region。
許多個region儲存在region server(單獨的物理機器)中的。
這樣,對錶的操作轉化為對多台region server的並行查詢。
4.hbase的體系結構
4.1 hbase是主從式結構,hmaster、hregionserver
zookeeper:
(1)保證任何時候,集群中只有乙個running master
(2)存貯所有region 的定址入口
(3)實時監控region server 的狀態,將region server 的上線和下線資訊,實時通知給master 儲存hbase 的schema,包括有哪些table,每個table 有哪些column family
master:
(1)可以啟動多個hmaster,通過zookeeper的master election機制保證總有乙個master執行
(2)為region server 分配region
(3)負責region server 的負載均衡
(4)發現失效的region server 並重新分配其上的region
5.hbase中有兩張特殊的table,-root-和.meta.
(1).meta.:記錄了使用者表的region資訊,.meta.可以有多個regoin -
(2)-root-:記錄了.meta.表的region資訊,-root-只有乙個region
zookeeper中記錄了-root-表的location
client訪問使用者資料之前需要首先訪問zookeeper(region 的定址入口),然後訪問-root-表(.meta.表),接著訪問.meta.表(region資訊),最後才能找到使用者資料的位置去訪問。
HBase基礎知識
hbase的主要客戶端介面是由org.apache.hadoop.hbase.client包中的htable類提供的,通過該類,使用者可以完成向hbase儲存和檢索資料,以及刪除無效資料之類的操作。所有修改資料的操作都保證了行級別的原子性,寫操作中涉及的列的數目不會影響該行資料的原子性,行原子性會同...
HBase基礎知識
hdfs myha01 hbase hbase.cluster.distributed true hbase.zookeeper.quorum hadoop02 2181,hadoop03 2181,hadoop04 2181 htable表 table htabledescriptor列族 col...
HBase基礎知識
hbase官網 學習 hbase是乙個建立在hadoop檔案系統之上的分布式的 面向列的開源資料庫,源於google的一篇 bigtable 乙個結構化資料的分布式儲存系統 hbase是google bigtable的開源實現,它利用hadoop hdfs作為其檔案儲存系統,利用hadoop map...