(第6.1篇)大數據發展背後的強力推手——HBase分佈式存儲系統

前面的文章我們介紹了HDFS文件系統、Mapreduce計算框架、Zookeeper協作服務今天我們介紹可在廉價PC Server上搭建起大規模結構化存儲集羣的分佈式存儲系統——HBase。

 HBase


HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集羣。

本章內容:

1) Hbase簡介

2) Hbase數據模型

3) Hbase基礎原理

4) Hbase系統架構

5) Hbase基礎操作

1. Hbase簡介

HBase是Apache Hadoop中的一個子項目,Hbase依託於Hadoop的HDFS作爲最基本存儲基礎單元,通過使用hadoop的DFS工具就可以看到這些這些數據存儲文件夾的結構,還可以通過Map/Reduce的框架(算法)對HBase進行操作。

wKioL1jAy-bCpuW1AAGnj_qExNY828.png 

上圖描述了Hadoop EcoSystem中的各層系統,其中HBase位於結構化存儲層,Hadoop HDFS爲HBase提供了高可靠性的底層存儲支持,Hadoop MapReduce爲HBase提供了高性能的計算能力,Zookeeper爲HBase提供了穩定服務和failover機制。

Hbase適用場景:

1) 大數據量存儲,大數據量高併發操作

2) 需要對數據隨機讀寫操作

3) 讀寫訪問均是非常簡單的操作

HbaseHDFS對比:

wKiom1jAz1XhWEmSAAUSeXKxu8k044.png 

兩者都具有良好的容錯性和擴展性,都可以擴展到成百上千個節點;

HDFS適合批處理場景,不支持數據隨機查找,不適合增量數據處理,不支持數據更新

2. Hbase數據模型

HBase以表的形式存儲數據。表由行和列族組成。列劃分爲若干個列族(row family),其邏輯視圖如下:

行健

時間戳

列族contents

列族anchor

列族mime

com.cnn.www

T9


Anchor:cnnsi.com=“CNN”


T8


Anchor:my.look.ca=“CNN.com


T6

Contents:html=“<html>……”


Mime.type=“text/html”

T5

Contents:html=“<html>……”



T3

Contents:html=“<html>……”



幾個關鍵概念:

1) 行鍵(RowKey)

行鍵是字節數組, 任何字符串都可以作爲行鍵;

表中的行根據行鍵進行排序,數據按照Row key的字節序(byte order)排序存儲;

所有對錶的訪問都要通過行鍵 (單個RowKey訪問,或RowKey範圍訪問,或全表掃描)

2) 列族(ColumnFamily)

CF必須在表定義時給出

每個CF可以有一個或多個列成員(ColumnQualifier),列成員不需要在表定義時給出,新的列族成員可以隨後按需、動態加入

數據按CF分開存儲,HBase所謂的列式存儲就是根據CF分開存儲(每個CF對應一個Store),這種設計非常適合於數據分析的情形

3) 時間戳(TimeStamp)

每個Cell可能又多個版本,它們之間用時間戳區分

4) 單元格(Cell)

Cell 由行鍵,列族:限定符,時間戳唯一決定

Cell中的數據是沒有類型的,全部以字節碼形式存儲

5) 區域(Region)

HBase自動把表水平(按Row)劃分成多個區域(region),每個region會保存一個表裏面某段連續的數據;

每個表一開始只有一個region,隨着數據不斷插入表,region不斷增大,當增大到一個閥值的時候,region就會等分會兩個新的region;

table中的行不斷增多,就會有越來越多的region。這樣一張完整的表被保存在多個Region 上。

wKioL1jAz3vCXiaBAAD2QldJ8C4220.png 

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

wKioL1jAz4qDLi2QAACgTROyDyU987.png 

 

3. Hbase架構基本組件

wKiom1jAz6WiZxgUAALwxWTI95s219.png 

上圖看到HBase的基本組件

1) Client:

包含訪問HBase的接口,並維護cache來加快對HBase的訪問,比如region的位置信息。

2) Master

Region server分配region

負責Region server的負載均衡

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

管理用戶對table的增刪改查操作

3) Region Server

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

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

4) Zookeeper作用

wKioL1jAz_ChqQ4CAADJRAXX0xY881.png 

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

存儲所有Region的尋址入口

實時監控Region server的上線和下線信息,並實時通知給Master

存儲HBaseschematable元數據

默認情況下,HBase 管理ZooKeeper 實例,比如, 啓動或者停止ZooKeeper

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


    由於時間關係,今天只介紹了前3節,明天我會一早寫上後邊的兩節(Hbase系統架構和Hbase基礎操作)

wKiom1jI3RChETj0AABC3HPbV6s185.jpg

如何用4個月學會Hadoop開發並找到年薪25萬工作?

 

免費分享一套17年最新Hadoop大數據教程100Hadoop大數據必會面試題

因爲鏈接經常被和諧,需要的朋友請加微信 ganshiyun666 來獲取最新下載鏈接,註明“51CTO”

 

教程已幫助300+人成功轉型Hadoop開發,90%起薪超過20K,工資比之前翻了一倍。

百度Hadoop核心架構師親自錄製

內容包括0基礎入門、Hadoop生態系統、真實商業項目實戰3大部分。其中商業案例可以讓你接觸真實的生產環境,訓練自己的開發能力。

wKioL1mdQGiDPhHeAAAuZtp-5xs706.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章