Hbase基本原理、及存儲知識

1、Hbase基礎數據庫

HBase是一個針對結構化數據的可伸縮、高可靠、高性能、分佈式和麪向列的動態模式數據庫。和傳統關係數據庫不一樣,HBase採用了BigTable的數據模型:加強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。HBase提供了對大規模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可使用MapReduce來處理,它將數據存儲和並行計算完美地結合在一塊兒。服務器

數據模型:Schema-->Table-->Column Family-->Column-->RowKey-->TimeStamp-->Value併發

2、表的特色負載均衡

大:一個表能夠有數十億行,上百萬列
無模式:每行都有一個可排序的主鍵和任意多的列,列能夠根據須要動態的增長,同一張表中不一樣的行能夠有大相徑庭的列
面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索
稀疏:空(null)列並不佔用存儲空間,表能夠設計的很是稀疏;
數據多版本:每一個單元中的數據能夠有多個版本,默認狀況下版本號自動分配,是單元格插入時的時間戳;
數據類型單一:Hbase中的數據都是字符串,沒有類型。dom


Hbase基本概念分佈式

RowKey:是Byte array,是表中每條記錄的主鍵,方便快速查找,Rowkey的設計很是重要。
Column Family
:列族,擁有一個名稱(string),包含一個或者多個相關列
Column
:屬於某一個columnfamilyfamilyName:columnName,每條記錄可動態添加
Version Number
:類型爲Long,默認值是系統時間戳,可由用戶自定義
Value(Cell)
Byte array高併發

物理存儲:
1
Table中全部行都按照row key的字典序排列;
2
Table在行的方向上分割爲多個Region
3
Region按大小分割的,每一個表開始只有一個region,隨着數據增多,region不斷增大,當增大到一個閥值的時候,region就會等分會兩個新的region,以後會有愈來愈多的region
4
RegionHbase中分佈式存儲和負載均衡的最小單元,不一樣Region分佈到不一樣RegionServer上。性能

5Region雖然是分佈式存儲的最小單元,但並非存儲的最小單元。Region由一個或者多個Store組成,每一個store保存一個columns family;每一個Strore又由一個memStore0至多個StoreFile組成,StoreFile包含HFilememStore存儲在內存中,StoreFile存儲在HDFS上。

大數據

 


 

HBase容錯性
Master容錯Zookeeper從新選擇一個新的Master
Master過程當中,數據讀取仍照常進行;ü
master過程當中,region切分、負載均衡等沒法進行;ü
RegionServer容錯:定時向Zookeeper彙報心跳,若是一旦時間內未出現心跳,Master將該RegionServer上的Region從新分配到其餘RegionServer上,失效服務器上預寫日誌由主服務器進行分割並派送給新的RegionServer
Zookeeper容錯Zookeeper是一個可靠地服務,通常配置35Zookeeper實例
Region
定位流程:

尋找RegionServer

spa

ZooKeeper--> -ROOT-(單Region)--> .META.--> 用戶表

-ROOT-
表包含.META.表所在的region列表,該表只會有一個Region;

Zookeeper中記錄了-ROOT-表的location。

.META.

表包含全部的用戶空間region列表,以及RegionServer的服務器地址。

  • Hbase使用場景

storing largeamounts  of data(100s of TBs)
need high write throughput
need efficient random access(key lookups) within large data sets
need to scale gracefully with data
for structured and semi-structured data
don't need fullRDMS capabilities(cross row/cross table transaction, joins,etc.)

大數據量存儲,大數據量高併發操做

須要對數據隨機讀寫操做

讀寫訪問均是很是簡單的操做

  • Hbase與HDFS對比

二者都具備良好的容錯性和擴展性,均可以擴展到成百上千個節點;
HDFS適合批處理場景
不支持數據隨機查找
不適合增量數據處理

不支持數據更新

相關文章
相關標籤/搜索