1. 程式人生 > >HBase概念、基本架構及原理

HBase概念、基本架構及原理

概述

HBase是一個構建在HDFS上的分散式列儲存系統;
HBase是基於Google BigTable模型開發的,典型的key/value系統;
HBase是Apache Hadoop生態系統中的重要一員,主要用於海量結構化資料儲存;
從邏輯上講,HBase將資料按照表、行和列進行儲存。
與hadoop一樣,Hbase目標主要依靠橫向擴充套件,通過不斷增加廉價的商用伺服器,來增加計算和儲存能力。
Hbase表的特點
大:一個表可以有數十億行,上百萬列
無模式:每行都有一個可排序的主鍵和任意多的列,列可以根據需要動態的增加,同一張表中不同的行可以有截然不同的列
面向列:面向列(族)的儲存和許可權控制,
列(族)獨立檢索
稀疏:空(null)列並不佔用儲存空間,表可以設計的非常稀疏;
資料多版本:每個單元中的資料可以有多個版本,預設情況下版本號自動分配,是單元格插入時的時間戳;

資料型別單一:Hbase中的資料都是字串,沒有型別。

Hbase資料模型

Hbase邏輯檢視


注意上圖中的英文說明

Hbase基本概念

RowKey:是Byte array,是表中每條記錄的“主鍵”,方便快速查詢,Rowkey的設計非常重要。

Column Family:列族,擁有一個名稱(string),包含一個或者多個相關列

Column:屬於某一個columnfamily,familyName:columnName,每條記錄可動態新增

Version Number:型別為Long,預設值是系統時間戳,可由使用者自定義

Value(Cell):Byte array

Hbase物理模型

每個column family儲存在HDFS上的一個單獨檔案中,空值不會被儲存。
Key 和 Version number在每個 column family中均有一份;
HBase 為每個值維護了多級索引,即:<key, column family, column name, timestamp>

物理儲存:
1、Table中所有行都按照row key的字典序排列;

2、Table在行的方向上分割為多個Region;

3、Region按大小分割的,每個表開始只有一個region,隨著資料增多,region不斷增大,當增大到一個閥值的時候,region就會等分會兩個新的region,之後會有越來越多的region;

4、Region是hbase中分散式儲存和負載均衡的最小單元,不同Region分佈到不同RegionServer上。


5、Region雖然是分散式儲存的最小單元,但並不是儲存的最小單元。Region由一個或者多個Store組成,每個store儲存一個columns family;每個Strore又由一個memStore和0至多個StoreFile組成,StoreFile包含HFile;memStore儲存在記憶體中,StoreFile儲存在HDFS上。

HBase架構及基本元件

Hbase基本元件說明:

Client

包含訪問HBase的介面,並維護cache來加快對HBase的訪問,比如region的位置資訊

Master

為Region server分配region

負責Region server的負載均衡

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

管理使用者對table的增刪改查操作

Region Server

Regionserver維護region,處理對這些region的IO請求

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

Zookeeper作用

通過選舉,保證任何時候,叢集中只有一個master,Master與RegionServers 啟動時會向ZooKeeper註冊

存貯所有Region的定址入口

實時監控Region server的上線和下線資訊。並實時通知給Master

儲存HBase的schema和table元資料

預設情況下,HBase 管理ZooKeeper 例項,比如, 啟動或者停止ZooKeeper

Zookeeper的引入使得Master不再是單點故障

Write-Ahead-Log(WAL)

該機制用於資料的容錯和恢復:

每個HRegionServer中都有一個HLog物件,HLog是一個實現Write Ahead Log的類,在每次使用者操作寫入MemStore的同時,也會寫一份資料到HLog檔案中(HLog檔案格式見後續),HLog檔案定期會滾動出新的,並刪除舊的檔案(已持久化到StoreFile中的資料)。當HRegionServer意外終止後,HMaster會通過Zookeeper感知到,HMaster首先會處理遺留的 HLog檔案,將其中不同Region的Log資料進行拆分,分別放到相應region的目錄下,然後再將失效的region重新分配,領取 到這些region的HRegionServer在Load Region的過程中,會發現有歷史HLog需要處理,因此會Replay HLog中的資料到MemStore中,然後flush到StoreFiles,完成資料恢復

HBase容錯性

Master容錯:Zookeeper重新選擇一個新的Master
無Master過程中,資料讀取仍照常進行;
無master過程中,region切分、負載均衡等無法進行;
RegionServer容錯:定時向Zookeeper彙報心跳,如果一旦時間內未出現心跳,Master將該RegionServer上的Region重新分配到其他RegionServer上,失效伺服器上“預寫”日誌由主伺服器進行分割並派送給新的RegionServer
Zookeeper容錯:Zookeeper是一個可靠地服務,一般配置3或5個Zookeeper例項
Region定位流程:

尋找RegionServer

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

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

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

.META.

表包含所有的使用者空間region列表,以及RegionServer的伺服器地址。

Hbase使用場景

storing large amounts  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適合批處理場景
不支援資料隨機查詢
不適合增量資料處理

不支援資料更新

轉載:http://blog.csdn.net/tanggao1314/article/details/51394365


相關推薦

HBase概念基本架構原理

概述 HBase是一個構建在HDFS上的分散式列儲存系統;HBase是基於Google BigTable模型開發的,典型的key/value系統;HBase是Apache Hadoop生態系統中的重要一員,主要用於海量結構化資料儲存;從邏輯上講,HBase將資料按

Hbase原理基本概念基本架構

概述 HBase是一個構建在HDFS上的分散式列儲存系統;HBase是基於Google BigTable模型開發的,典型的key/value系統;HBase是Apache Hadoop生態系統中的重要一員,主要用於海量結構化資料儲存;從邏輯上講,HBase將資料按照表、行

HDFS應用場景原理基本架構使用方法概述

以下主要參考小象科技的董西成老師的視訊 1. HDFS概述 2. HDFS基本架構和原理 3. HDFS程式設計 4. HDFS 2.0新特性 一、HDFS概述 HDFS是什麼? 1、源自於Google的GFS論文,發表於2003年10月,HDFS是GFS克隆版

HBase基本架構原理

1. HBase框架簡單介紹 HBase是一個分散式的、面向列的開源資料庫,它不同於一般的關係資料庫,是一個適合於非結構化資料儲存的資料庫。另一個不同的是HBase基於列的而不是基於行的模式。HBase使用和 BigTable非常相同的資料模型。使用者儲存資料行在一個表裡。

Spark(一): 基本架構原理

通常當需要處理的資料量超過了單機尺度(比如我們的計算機有4GB的記憶體,而我們需要處理100GB以上的資料)這時我們可以選擇spark叢集進行計算,有時我們可能需要處理的資料量並不大,但是計算很複雜,需要大量的時間,這時我們也可以選擇利用spark叢集強大的計算資源,並行化地計算,其架構示意圖如下:Spark

Spark基本架構原理

Spark on YARN模式根據Driver在叢集中的位置分為兩種模式:一種是YARN-Client模式,另一種是YARN-Cluster(或稱為YARN-Standalone模式) Yarn-Client模式中,Driver在客戶端本地執行,這種模式可以使得Spark Application和客戶端進行

Apache Flink:特性概念元件棧架構原理分析

Apache Flink是一個面向分散式資料流處理和批量資料處理的開源計算平臺,它能夠基於同一個Flink執行時(Flink Runtime),提供支援流處理和批處理兩種型別應用的功能。現有的開源計算方案,會把流處理和批處理作為兩種不同的應用型別,因為他們它們所提供的SLA是完全不相同的:流處理一般需要支

【Memcached】原理體系架構基本操作路由演算法

1. 什麼是Memcached    要了解Memcached首先要到官網上去看官方對它的描述。Memcached的官網網站是:http://memcached.org/,官方對Memcached的描述如下圖:    從官方的描述中可以總結出,Memcached是一個高效能分

Apache Flink:特性概念元件棧架構原理分析(全)

Apache Flink是一個面向分散式資料流處理和批量資料處理的開源計算平臺,它能夠基於同一個Flink執行時(Flink Ru

Spark基本架構執行原理

Spark軟體棧 Spark Core: 包含Spark的基本功能,包含任務排程,記憶體管理,容錯機制等,內部定義了RDDs(彈性分散式資料集),提供了很多APIs來建立和操作這些RDDs。為其他元件提供底層的服務。 Spark SQL: S

一個實驗搞定華為hybrid-vlan基本配置原理

華為 hybrid-vlan實驗拓撲:2. 實驗需求:PC1和PC3屬於VLAN10 PC2和PC4屬於VLAN20 PC5和PC6屬於VLAN30。VLAN10和20的成員都可以和VLAN30中PC5通信,但是VLAN10和VLAN20的成員之間不能通信(通過二層技術實現此需求,就是華為Hybrid

視頻內容誰來保護?阿裏雲視頻加密技術架構原理解讀

視頻處理 log 加速 alt 不同的 均可 .com 平臺 內核 視頻行業的從業者——尤其是在線教育、財經分析等重視內容版權的播放平臺都知道,視頻安全是一個非常重要的基礎需求。用戶通過一次付費行為,就可以拿到付費視頻的播放URL,將播放URL進行二次分發,這種行為叫做盜鏈

交換機基本介紹原理 - 達內學員整理

ood 學員 沖突 達內 bcd 平時 inter ddr port 交換:-定義相同網段的主機互通,稱之為交換;-實現:具有交換功能的設備,即交換機;-核心表:交換表 / MAC 地址表裏面包含的是 MAC 與 port(端口)的對應關系; -原理:成表1.靜態輸入MAC

(轉) 用戶訪問網站基本流程原理(史上最全,沒有之一)

發送 操作 導致 靜態路由 讀寫分離 壓力 共享存儲 空行 維護 用戶訪問網站基本流程及原理(史上最全,沒有之一) 原文:http://blog.csdn.net/yonggeit/article/details/72857630 目錄(?)[-]  用

同余的概念十條性質應用

似的 最大 color 最小公倍數 證明 nbsp 數論 pmod mar 概念: 首先,同余是數論中一個非常重要的內容,我們信息學中的數論無非就是圍繞著素數和同余等轉來轉去,沒有紮實的數學基本功,信息奧賽這條路也絕對走不遠。 同余的定義:有兩整數a,b,

C語言基本語法原理初始:

reg 移碼 存儲 存儲類型 關鍵字 向上 取值 靜態 別名 C語言基本語法及原理初始: /* ******************************************* * 數據類型 說明數據大小

【轉】五分鐘讀懂大數據核心MapReduce架構原理

變化 架構 解析 重要 輸出結果 讀取 英文單詞 性能 行處理 什麽是MapReduce Hadoop中的MapReduce是一個簡單的軟件框架,基於它寫出的應用程序可以運行在由上千個商用機器組成的大型集群上,並以一種可靠容錯式並行處理TB級數據 MapReduce的起

深入理解Lua的閉包一:概念應用和實現原理

觀點 數組 line Language 場景 test 詞法 nil 實參 本文首先通過具體的例子講解了Lua中閉包的概念,然後總結了閉包的應用場合,最後探討了Lua中閉包的實現原理。 閉包的概念 在Lua中,閉包(closure)是由一個函數和該函數會訪問到的

【Hadoop 分布式部署 五:分布式部署之分發基本測試監控】

conda -s 啟動 上啟 res 點擊 mon web頁面 mapr 1.對 hadoop 進行格式化     到 /opt/app/hadoop-2.5.0 目錄下  執行命令: bin/hdfs namenode -format       執行的效果圖

Python簡介安裝更新基本語法資料型別

Python簡介 python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的指令碼解釋程式,作為ABC語言的一種繼承。   最新的TIOBE排行榜,Python趕超PHP佔據第