2023學(xué)年完整公開課版教學(xué)HBase原理_第1頁
2023學(xué)年完整公開課版教學(xué)HBase原理_第2頁
2023學(xué)年完整公開課版教學(xué)HBase原理_第3頁
2023學(xué)年完整公開課版教學(xué)HBase原理_第4頁
2023學(xué)年完整公開課版教學(xué)HBase原理_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

主講:張義0102目錄HBase系統(tǒng)架構(gòu)HBase工作流程HBase系統(tǒng)架構(gòu)1HBase系統(tǒng)架構(gòu)HBase系統(tǒng)架構(gòu)

從HBase的架構(gòu)圖上可以看出,HBase中的組件包括Client、Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等,接下來介紹他們的作用。HBase中的每張表都通過行鍵按照一定的范圍被分割成多個(gè)子表(HRegion),默認(rèn)一個(gè)HRegion超過256M就要被分割成兩個(gè),這個(gè)過程由HRegionServer管理,而HRegion的分配由HMaster管理。Client

包含訪問HBase的接口,并維護(hù)cache來加快對HBase的訪問。Zookeeper

HBase依賴Zookeeper,默認(rèn)情況下HBase管理Zookeeper實(shí)例(啟動或關(guān)閉Zookeeper),Master與RegionServers啟動時(shí)會向Zookeeper注冊。

保證任何時(shí)候,集群中只有一個(gè)master

實(shí)時(shí)監(jiān)控Regionserver的上線和下線信息,并實(shí)時(shí)通知給master。

存儲HBase的schema和table元數(shù)據(jù)。HBase系統(tǒng)架構(gòu)

HMaster

為Regionserver分配region

負(fù)責(zé)Regionserver的負(fù)載均衡

發(fā)現(xiàn)失效的Regionserver并重新分配其上的region。

處理schema更新請求。HRegionServer

維護(hù)master分配給他的region,處理對這些region的io請求。

負(fù)責(zé)切分正在運(yùn)行過程中變的過大的region。

注意:client訪問hbase上的數(shù)據(jù)時(shí)不需要master的參與,因?yàn)閿?shù)據(jù)尋址訪問zookeeper和regionserver,而數(shù)據(jù)讀寫訪問regionserver。master僅僅維護(hù)table和region的元數(shù)據(jù)信息,而table的元數(shù)據(jù)信息保存在zookeeper上,因此master負(fù)載很低HBase系統(tǒng)架構(gòu)HRegion

table在行的方向上分隔為多個(gè)Region。Region是HBase中分布式存儲和負(fù)載均衡的最小單元,即不同的region可以分別在不同的RegionServer上,但同一個(gè)Region是不會拆分到多個(gè)server上。

Region按大小分隔,每個(gè)表一般是只有一個(gè)region。隨著數(shù)據(jù)不斷插入表,region不斷增大,當(dāng)region的某個(gè)列族達(dá)到一個(gè)閾值時(shí)就會分成兩個(gè)新的region。

每個(gè)region由以下信息標(biāo)識:<表名,startRowkey,創(chuàng)建時(shí)間>

由目錄表(-ROOT-和.META.)記錄該region的endRowkeyStore

每一個(gè)region由一個(gè)或多個(gè)store組成,至少是一個(gè)store,hbase會把一起訪問的數(shù)據(jù)放在一個(gè)store里面,即為每個(gè)ColumnFamily建一個(gè)store,如果有幾個(gè)ColumnFamily,也就有幾個(gè)Store。一個(gè)Store由一個(gè)memStore和0或者多個(gè)StoreFile組成。HBase以store的大小來判斷是否需要切分regionHBase系統(tǒng)架構(gòu)MemStore

memStore是放在內(nèi)存里的。保存修改的數(shù)據(jù)即keyValues。當(dāng)memStore的大小達(dá)到一個(gè)閥值(默認(rèn)128MB)時(shí),memStore會被flush到文件,即生成一個(gè)快照。目前hbase會有一個(gè)線程來負(fù)責(zé)memStore的flush操作。StoreFile

memStore內(nèi)存中的數(shù)據(jù)寫到文件后就是StoreFile,StoreFile底層是以HFile的格式保存。HfileHBase中KeyValue數(shù)據(jù)的存儲格式,HFile是Hadoop的二進(jìn)制格式文件,實(shí)際上StoreFile就是對Hfile做了輕量級包裝,即StoreFile底層就是Hfile。HBase系統(tǒng)架構(gòu)HLog

HLog(WALlog):WAL意為writeaheadlog,用來做災(zāi)難恢復(fù)使用,HLog記錄數(shù)據(jù)的所有變更,一旦regionserver宕機(jī),就可以從log中進(jìn)行恢復(fù)。HBase工作流程2HBase工作流程

HBase工作流程Client

首先當(dāng)一個(gè)請求產(chǎn)生時(shí),HBaseClient使用RPC(遠(yuǎn)程過程調(diào)用)機(jī)制與HMaster和HRegionServer進(jìn)行通信,對于管理類操作,Client與HMaster進(jìn)行RPC;對于數(shù)據(jù)讀寫操作,Client與HRegionServer進(jìn)行RPC。Zookeeper

HBaseClient使用RPC(遠(yuǎn)程過程調(diào)用)機(jī)制與HMaster和HRegionServer進(jìn)行通信,但如何尋址呢?由于Zookeeper中存儲了-ROOT-表的地址和HMaster的地址,所以需要先到Zookeeper上進(jìn)行尋址。

HRegionServer也會把自己以Ephemeral方式注冊到Zookeeper中,使HMaster可以隨時(shí)感知到各個(gè)HRegionServer的健康狀態(tài)。此外,Zookeeper也避免了HMaster的單點(diǎn)故障。

HBase工作流程HMaster

當(dāng)用戶需要進(jìn)行Table和Region的管理工作時(shí),就需要和HMaster進(jìn)行通信。HBase中可以啟動多個(gè)HMaster,通過Zookeeper的MasterEletion機(jī)制保證總有一個(gè)Master運(yùn)行。

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

管理HRegionServer的負(fù)載均衡,調(diào)整Region的分布

在RegionSplit后,負(fù)責(zé)新Region的分配

在HRegionServer停機(jī)后,負(fù)責(zé)失效HRegionServer上的Regions遷移HRegionServer

當(dāng)用戶需要對數(shù)據(jù)進(jìn)行讀寫操作時(shí),需要訪問HRegionServer。HRegionServer存取一個(gè)子表時(shí),會創(chuàng)建一個(gè)HRegion對象,然后對表的每個(gè)列族創(chuàng)建一個(gè)Store實(shí)例,每個(gè)Store都會有一個(gè)MemStore和0個(gè)或多個(gè)StoreFile與之對應(yīng),每個(gè)StoreFile都會對應(yīng)一個(gè)HFile,HFile就是實(shí)際的存儲文件。因此,一個(gè)HRegion有多少個(gè)列族就有多少個(gè)Store。一個(gè)HRegionServer會有多個(gè)HRegion和一個(gè)HLog。HBase工作流程注意:HStore存儲由兩部分組成:MemStore和StoreFiles。MemStore是SortedMemoryBuffer,用戶寫入數(shù)據(jù)首先會放在MemStore,當(dāng)MemStore滿了以后會Flush成一個(gè)StoreFile(實(shí)際存儲在HDHS上的是HFile),當(dāng)StoreFile文件數(shù)量增長到一定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論