學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

Hadoop家族新成員Hbase重磅來襲

來源:北大青鳥總部 2023年06月07日 13:26

摘要: Hbase是基于HDFS的非關(guān)系型大數(shù)據(jù),非常適合存儲(chǔ),因?yàn)樗梢韵馠DFS一樣做到存儲(chǔ)的線性擴(kuò)容,無論多少數(shù)據(jù)都可以存儲(chǔ)。Hbase數(shù)據(jù)庫繼承了Hadoop家族的良好基金,用來存儲(chǔ)海量數(shù)據(jù)。

說起Hadoop,玩大數(shù)據(jù)的沒有一個(gè)不知道,Hadoop是由Apache基金會(huì)所開發(fā)的一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),包含分布式文件系統(tǒng)HDFS(HadoopDistributed FileSystem)、分布式計(jì)算框架MapReduce、HIve數(shù)據(jù)倉庫、Avro序列化工具等。而今天我們要給大家介紹一位新朋友Hbase,它是基于HDFS的非關(guān)系型大數(shù)據(jù)(非常適合存儲(chǔ),因?yàn)榭梢韵馠DFS一樣做到存儲(chǔ)的線性擴(kuò)容,無論多少數(shù)據(jù)都可以存儲(chǔ);)



Hbase數(shù)據(jù)庫繼承了Hadoop家族的良好基金,它是用來存儲(chǔ)海量數(shù)據(jù)的,百萬以下的數(shù)據(jù)量就不要打擾它了。既然是存儲(chǔ)使用使用,那么它是如何做數(shù)據(jù)存儲(chǔ)的呢?為了大家更好的理解概念,我們與同一個(gè)數(shù)據(jù)在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫如Mysql中的存儲(chǔ)做對(duì)比進(jìn)行理解?,F(xiàn)在我們來存儲(chǔ)學(xué)生張三和李四的信息,包含編號(hào)、姓、名、密碼、學(xué)號(hào),在Mysql中會(huì)分成兩行五列存儲(chǔ)。



而在HBase中則會(huì)將數(shù)據(jù)從邏輯上分為三部分,第一部分為rowkey唯一標(biāo)識(shí)(即Mysql中的主鍵),第二部分則把相同屬性的內(nèi)容劃分到同一個(gè)Column-Family中,比如姓名、賬號(hào),每一個(gè)Column-Family就是一個(gè)Qualifier,而里面具體的值就是CellValue。在下表(邏輯關(guān)系)中Rowkey是1,CF是姓名屬性、賬號(hào)屬性,Qualifier是info、pwd,Value是張、三、20160719、111。



在Hbase中物理存儲(chǔ)如下,Version代表的是版本,在Hbase中允許一個(gè)值有多個(gè)版本,通過Version號(hào)來標(biāo)記。將上面的邏輯數(shù)據(jù)拆解后,如下圖所示,hbase會(huì)進(jìn)行如下存儲(chǔ)。從存儲(chǔ)方式來看,一個(gè)CF對(duì)應(yīng)一個(gè)HFile,而HFile在HDFS分布式文件系統(tǒng)中,是可以無限擴(kuò)張,因此Hbase的存儲(chǔ)能力也可以無限擴(kuò)張。細(xì)心的朋友不要以為HFile只能存儲(chǔ)在HDFS上噢,它其實(shí)在本地的文件系統(tǒng)也可以存儲(chǔ)使用,只不過就是存儲(chǔ)能力有限,無法擴(kuò)展而已。



介紹完了Hbase的數(shù)據(jù)存儲(chǔ)模式,我們來看看它的架構(gòu)圖,在Hbase中從上往下包含API、Master節(jié)點(diǎn)、RegionServer、Region、HDFS五大部分,在實(shí)際使用過程中使用分布式協(xié)調(diào)器Zookeeper來協(xié)調(diào)MasterServer的負(fù)載,確保使用Hbase是處于工作狀態(tài)。



在Hbase中Master節(jié)點(diǎn)是用來協(xié)調(diào)多個(gè)Regionserver節(jié)點(diǎn)的,確保RegionServer是處于工作狀態(tài)。而為了保證系統(tǒng)的高可用,也要確保Master節(jié)點(diǎn)不能掛掉啊,因此Zookeeper會(huì)來做Master節(jié)點(diǎn)的整體監(jiān)控,當(dāng)有Master節(jié)點(diǎn)掛掉時(shí),選舉出新的Master節(jié)點(diǎn)來接管工作。

Regionserver包含多個(gè)Region,用于管理表格、讀寫數(shù)據(jù),通過對(duì)外提供API可以直接獲取Region的數(shù)據(jù),Region則是真正存儲(chǔ)數(shù)據(jù)的地方,一般一個(gè)Region對(duì)應(yīng)一個(gè)CF,但是當(dāng)表格數(shù)據(jù)很大由多個(gè)CF組成時(shí),就會(huì)存儲(chǔ)在多個(gè)Region中,通過存儲(chǔ)單元Store關(guān)聯(lián)起來。同時(shí)Zookeeper也會(huì)管理多個(gè)Regionserver之間的協(xié)調(diào)調(diào)度。

下圖是Hbase工作的原理圖,從圖上我們看到RegionServer還包含WAL、Memstore、Hfile幾部分。WAL是HBase為了保障數(shù)據(jù)一致性的一個(gè)設(shè)計(jì),為了提高數(shù)據(jù)讀寫性能,并且保證數(shù)據(jù)準(zhǔn)確,HBase會(huì)把數(shù)據(jù)先寫入到內(nèi)存,但內(nèi)存并不是一直可靠啊,萬一斷電了數(shù)據(jù)全沒了,因此在寫入內(nèi)存時(shí),也會(huì)寫一份日志,當(dāng)內(nèi)存掛掉時(shí),通過日志的數(shù)據(jù)可以知道內(nèi)容,實(shí)現(xiàn)數(shù)據(jù)恢復(fù)。寫入到內(nèi)存的數(shù)據(jù)一般放在Memstore中,然后再定期的把Memstore的數(shù)據(jù)存儲(chǔ)在磁盤,然后清空Memstore。HFile就是Hbase最終存儲(chǔ)數(shù)據(jù)的實(shí)體了,本質(zhì)上也就是HDFS的一個(gè)文件,一個(gè)CF存儲(chǔ)在一個(gè)HFile中。



本文介紹了HBase數(shù)據(jù)庫,它與Hive、Mysql還是不太一樣噢,Hive專注于數(shù)據(jù)分析,底層依靠的更多是MapReduce的計(jì)算能力,而Mysql是關(guān)系型數(shù)據(jù)庫,主要聚焦在事務(wù)的ACID(原子性、一致性、持久性、),Hbase則更多的是聚焦在數(shù)據(jù)的存儲(chǔ)方便。如果你的數(shù)據(jù)足夠多,上億萬的數(shù)據(jù)才考慮使用Hbase,數(shù)據(jù)量太小反而是發(fā)揮不出優(yōu)勢(shì),也沒辦法做數(shù)據(jù)的其他處理。在決定使用Hbase之前,要確保硬件條件到位,一般來說HDFS集群的數(shù)據(jù)節(jié)點(diǎn)少于5個(gè)時(shí),基本也等于雞肋,相當(dāng)于擺好了一個(gè)大陣仗,飛機(jī)坦克步兵炮兵全上了,以為是來了一個(gè)連的敵人,結(jié)果只來了一個(gè)班。

不過總的來說Hbase還是非常優(yōu)秀的一款大數(shù)據(jù),在很多互聯(lián)網(wǎng)公司的信息存儲(chǔ)都使用Hbase,在流數(shù)據(jù)存儲(chǔ)、實(shí)時(shí)計(jì)算時(shí),Hbase也是很好的選擇,相信今天大家了解了Hbase數(shù)據(jù)之后,可以更好的將Hbase使用在業(yè)務(wù)當(dāng)中,輸出更好的大數(shù)據(jù)解決方案。


標(biāo)簽: 大數(shù)據(jù)
熱門班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運(yùn)營(yíng)班 爆滿開班
報(bào)名優(yōu)惠
免費(fèi)試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接