1. 程式人生 > >HBase的基礎知識

HBase的基礎知識

1.HBase(NoSQL:不是關係型資料庫)的邏輯資料模型

HBase – Hadoop Database,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化儲存叢集。HBase利用Hadoop HDFS作為其檔案儲存系統,利用Hadoop MapReduce來處理HBase中的海量資料,利用Zookeeper作為協調工具。 在這裡插入圖片描述 在這裡插入圖片描述

1.1 表(table),是儲存管理資料的。 1.2 行鍵(row key),類似於MySQL中的主鍵。   行鍵是HBase表天然自帶的。 1.3 列族(column family),列的集合。   HBase中列族是需要在定義表時指定的,列是在插入記錄時動態增加的。   HBase表中的資料,每個列族單獨一個檔案。 1.4 時間戳(timestamp),列(也稱作標籤、修飾符)的一個屬性。   行鍵和列確定的單元格,可以儲存多個數據,每個資料含有時間戳屬性,資料具有版本特性。   如果不指定時間戳或者版本,預設取最新的資料。 1.5 儲存的資料都是位元組陣列。 1.6 表中的資料是按照行鍵的順序物理儲存的。

2.HBase的物理資料模型 在這裡插入圖片描述

2.1 HBase是適合海量資料(如20PB,1024T=1P)的秒級簡單查詢的資料庫。 2.2 HBase表中的記錄,按照行鍵進行拆分, 拆分成一個個的region。   許多個region儲存在region server(單獨的物理機器)中的。   這樣,對錶的操作轉化為對多臺region server的並行查詢。

3.HBase的體系結構 在這裡插入圖片描述

3.1 HBase是主從式結構,HMaster、HRegionServer

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

Zookeeper 保證任何時候,叢集中只有一個running master

存貯所有Region 的定址入口

實時監控Region Server 的狀態,將Region server 的上線和下線資訊,實時通知給Master

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

Master 可以啟動多個HMaster,通過Zookeeper的Master Election機制保證總有一個Master執行

為Region server 分配region

負責region server 的負載均衡

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

Region Server 維護Master 分配給它的region,處理對這些region 的IO請求

負責切分在執行過程中變得過大的region 在這裡插入圖片描述

HBase中有兩張特殊的Table,-ROOT-和.META.

1、.META.:記錄了使用者表的Region資訊,.META.可以有多個regoin

2、-ROOT-:記錄了.META.表的Region資訊,-ROOT-只有一個region Zookeeper中記錄了-ROOT-表的location

Client訪問使用者資料之前需要首先訪問zookeeper,然後訪問-ROOT-表,接著訪問.META.表,最後才能找到使用者資料的位置去訪問 在這裡插入圖片描述