HBase的原理和架構(gòu)是什么

這篇文章主要為大家展示了“HBase的原理和架構(gòu)是什么”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“HBase的原理和架構(gòu)是什么”這篇文章吧。

創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供依安網(wǎng)站建設(shè)、依安做網(wǎng)站、依安網(wǎng)站設(shè)計(jì)、依安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、依安企業(yè)網(wǎng)站模板建站服務(wù),10余年依安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

一、邏輯存儲(chǔ)模型
    HBase以表的形式存儲(chǔ)數(shù)據(jù),表由行和列組成。列劃分為若干個(gè)列族,

    RowKey:Hbase使用Rowkey來(lái)唯一的區(qū)分某一行的數(shù)據(jù)。如圖中"rk001"
    列族:Hbase通過(guò)列族劃分?jǐn)?shù)據(jù)的存儲(chǔ),列族下面可以包含任意多的列,實(shí)現(xiàn)靈活的數(shù)據(jù)存取。Hbase的列族不是越多越好,官方推薦的是列族最好小于或者等于3。我們使用的場(chǎng)景一般是1個(gè)列族。如圖中的“CF1”列族,下面包含兩個(gè)列:"Name"和"Alias"。
    時(shí)間戳:TimeStamp對(duì)Hbase來(lái)說(shuō)至關(guān)重要,因?yàn)樗菍?shí)現(xiàn)Hbase多版本的關(guān)鍵。在Hbase中使用不同的timestame來(lái)標(biāo)識(shí)相同rowkey行對(duì)應(yīng)的不通版本的數(shù)據(jù)。
    Cell:HBase 中通過(guò) rowkey 和 columns 確定的為一個(gè)存儲(chǔ)單元稱(chēng)為 cell。每個(gè) cell 都保存著同一份 數(shù)據(jù)的多個(gè)版本。版本通過(guò)時(shí)間戳來(lái)索引。

二、物理存儲(chǔ)模型

在HBase中,數(shù)據(jù)以表的形式存儲(chǔ),表由很多行組成,每一行由Row key(行鍵)以及一個(gè)或多個(gè)的列值組成。我們可以這么想,當(dāng)表有很多很多的Row時(shí),我們把這個(gè)表按某些規(guī)則(比如每500條)拆分成很多部分,那么拆分后的每一部分就是所謂的HRegion,這個(gè)HRegion作為一個(gè)整體被HMaster分配到某一個(gè)RegionServer中。這里可以這樣理解,把HMaster想象成一個(gè)老大,他把HRegion給分配到某一個(gè)服務(wù)器上,這樣一來(lái),一個(gè)表就被分成多個(gè)HRegion并可能分配到了不同的RegionServer上。我們剛說(shuō)HRegion是一個(gè)整體,意思是他不能再繼續(xù)往下分割了,他必須在一個(gè)RegionServer上。

三、總體架構(gòu)
    HBase的總體結(jié)構(gòu)圖如下:
HBase的原理和架構(gòu)是什么

    包括了HMaster、HRegionSever、HRegion、HLog、Store、MemStore、StoreFile、HFile等。

HBase底層依賴(lài)HDFS,通過(guò)DFS Cilent進(jìn)行HDFS操作。
HMaster負(fù)責(zé)把HRegion分配給HRegionServer,每一個(gè)HRegionServer可以包含多個(gè)HRegion,多個(gè)HRegion共享HLog,HLog用來(lái)做災(zāi)難恢復(fù)。
每一個(gè)HRegion由一個(gè)或多個(gè)Store組成,一個(gè)Store對(duì)應(yīng)表的一個(gè)列族,每個(gè)Store中包含與其對(duì)應(yīng)的MemStore以及一個(gè)或多個(gè)StoreFile(是實(shí)際數(shù)據(jù)存儲(chǔ)文件HFile的輕量級(jí)封裝),MemStore是在內(nèi)存中的,保存了修改的數(shù)據(jù),MemStore中的數(shù)據(jù)寫(xiě)到文件中就是StoreFile。

3.1 HMaster
    HMaster的主要功能有:
①把HRegion分配到某一個(gè)RegionServer。
②有RegionServer宕機(jī)了,HMaster可以把這臺(tái)機(jī)器上的Region遷移到active的RegionServer上。
③對(duì)HRegionServer進(jìn)行負(fù)載均衡。
④通過(guò)HDFS的dfs client接口回收垃圾文件(無(wú)效日志等)
注:HMaster沒(méi)有單點(diǎn)問(wèn)題,HBase中可以啟動(dòng)多個(gè)HMaster,通過(guò)Zookeeper的Master Election機(jī)制保證總有一個(gè)Master運(yùn)行。

3.2 HRegionServer
    ①維護(hù)HMaster分配給它的HRegion,處理對(duì)這些HRegion的IO請(qǐng)求,也就是說(shuō)客戶端直接和HRegionServer打交道。(從圖中也能看出來(lái))
    ②負(fù)責(zé)切分正在運(yùn)行過(guò)程中變得過(guò)大的HRegion

3.3 HRegion
    下面我們看看HRegion的結(jié)構(gòu):

    每個(gè)HRegion由多個(gè)Store構(gòu)成,每個(gè)Store保存一個(gè)列族(Columns Family),表有幾個(gè)列族,則有幾個(gè)Store,每個(gè)Store由一個(gè)MemStore和多個(gè)StoreFile組成,MemStore是Store在內(nèi)存中的內(nèi)容,寫(xiě)到文件后就是StoreFile。StoreFile底層是以HFile的格式保存。

3.4 HLog
    HLog(WAL log):WAL意為write ahead log(預(yù)寫(xiě)日志),用來(lái)做災(zāi)難恢復(fù)使用,HLog記錄數(shù)據(jù)的變更,包括序列號(hào)和實(shí)際數(shù)據(jù),所以一旦region server 宕機(jī),就可以從log中回滾還沒(méi)有持久化的數(shù)據(jù)。

3.5 HFile
    HBase的數(shù)據(jù)最終是以HFile的形式存儲(chǔ)在HDFS中的,HBase中HFile有著自己的格式。

以上是“HBase的原理和架構(gòu)是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文標(biāo)題:HBase的原理和架構(gòu)是什么
地址分享:http://bm7419.com/article30/iihspo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、App設(shè)計(jì)、企業(yè)建站、小程序開(kāi)發(fā)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名