第4章 HBase的讀寫(xiě)基本操作_第1頁(yè)
第4章 HBase的讀寫(xiě)基本操作_第2頁(yè)
第4章 HBase的讀寫(xiě)基本操作_第3頁(yè)
第4章 HBase的讀寫(xiě)基本操作_第4頁(yè)
第4章 HBase的讀寫(xiě)基本操作_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

HBase的讀寫(xiě)流程第4章學(xué)習(xí)目標(biāo)1.深入了解RegionServer架構(gòu)2.了解HBase寫(xiě)流程3.了解HBase讀流程4.了解Hbase自動(dòng)優(yōu)化過(guò)程HBaseContents目錄讀流程3RegionServer架構(gòu)

寫(xiě)流程

21自動(dòng)優(yōu)化過(guò)程44.1RegionServer架構(gòu)4.1RegionServer架構(gòu)Store一個(gè)Region由多個(gè)Store組成,一個(gè)Store對(duì)應(yīng)一個(gè)CF(列族)Store中包含位于內(nèi)存中的Memstore文件和位于磁盤(pán)的Storefile文件。Memstore與Storefile寫(xiě)操作先寫(xiě)入Memstore,當(dāng)Memstore中的數(shù)據(jù)達(dá)到某個(gè)閾值,會(huì)將其刷寫(xiě)到磁盤(pán)中,生成一個(gè)Storefile文件。因此,在一張表剛剛創(chuàng)建之時(shí),系統(tǒng)里只會(huì)有Memstore文件,當(dāng)數(shù)據(jù)達(dá)到一定量或插入數(shù)據(jù)一段時(shí)間后,才會(huì)出現(xiàn)Storefile文件。4.1RegionServer架構(gòu)WAL(writeaheadlog)由于數(shù)據(jù)要先寫(xiě)入MemStore后才能刷寫(xiě)到HFile,儲(chǔ)存在內(nèi)存也會(huì)面臨一定風(fēng)險(xiǎn)。為了解決這個(gè)問(wèn)題,數(shù)據(jù)會(huì)先寫(xiě)在一個(gè)叫做Hlog的文件中,之后再寫(xiě)入MemStore。該文件包含詳細(xì)的寫(xiě)入信息,包括Region位置,寫(xiě)入數(shù)據(jù),寫(xiě)入時(shí)間等等。若寫(xiě)入時(shí)出現(xiàn)系統(tǒng)故障,可以通過(guò)這個(gè)日志文件重建數(shù)據(jù)。Block

Cache讀緩存,每次查詢出的數(shù)據(jù)都會(huì)緩存在BlockCache中,作為熱點(diǎn)數(shù)據(jù),方便下次查詢。4.2寫(xiě)流程4.2寫(xiě)流程寫(xiě)流程:1)Client訪問(wèn)zookeeper,獲取meta表(存儲(chǔ)每張表RowKey的分布情況)位置;2)訪問(wèn)meta表,根據(jù)寫(xiě)請(qǐng)求的RowKey,查詢出數(shù)據(jù)應(yīng)當(dāng)位于哪個(gè)Region中;3)與目標(biāo)RegionServer進(jìn)行通訊;4)將數(shù)據(jù)順序?qū)懭耄ㄗ芳樱┑絎AL中;5)將數(shù)據(jù)寫(xiě)入對(duì)應(yīng)的MemStore,返回寫(xiě)入成功信息;6)當(dāng)MemStore中的數(shù)據(jù)大小達(dá)到閾值或距離上次溢寫(xiě)達(dá)到一定時(shí)間,將MemStore溢寫(xiě)至磁盤(pán)中形成StoreFile;7)將meta表的位置信息緩存,方便下次訪問(wèn)。4.3讀流程4.3讀流程讀流程1)Client訪問(wèn)zookeeper,獲取meta表(存儲(chǔ)每張表RowKey的分布情況)位置;2)訪問(wèn)meta表,根據(jù)寫(xiě)請(qǐng)求的Row

Key,查詢出數(shù)據(jù)應(yīng)當(dāng)位于哪個(gè)Region中;3)與目標(biāo)RegionServer進(jìn)行通訊;4)先后在BlockCache、MemStore、StoreFile中,根據(jù)RowKey尋找數(shù)據(jù),如有不同時(shí)間戳版本,將所有數(shù)據(jù)進(jìn)整合;5)將查詢到的新的數(shù)據(jù)塊信息緩存到BlockCache作為熱點(diǎn)信息;6)將合并后的最終結(jié)果返回給客戶端;7)將meta表的位置信息緩存,方便下次訪問(wèn)。4.4

HBase自優(yōu)化StoreFileCompaction(合并)由于memstore每次刷寫(xiě)都會(huì)生成一個(gè)新的HFile,且同一個(gè)字段的不同版本(timestamp)和不同類型(Put/Delete操作)有可能會(huì)分布在不同的HFile中,因此查詢時(shí)需要遍歷所有的HFile。為了減少HFile的個(gè)數(shù),以及清理掉過(guò)期和刪除的數(shù)據(jù),會(huì)進(jìn)行StoreFileCompaction。Compaction分為兩種,分別是MinorCompaction和MajorCompaction。MinorCompaction會(huì)將臨近的若干個(gè)較小的HFile合并成一個(gè)較大的HFile,并清理掉部分過(guò)期和刪除的數(shù)據(jù)。MajorCompaction會(huì)將一個(gè)Store下的所有的HFile合并成一個(gè)大HFile,并且會(huì)清理掉所有過(guò)期和刪除的數(shù)據(jù)。4.4HBase自優(yōu)化4.4HBase自優(yōu)化RegionSplit(切割)

默認(rèn)情況下,每個(gè)Table初始有一個(gè)Region。隨著數(shù)據(jù)的不斷寫(xiě)入,Region會(huì)自動(dòng)進(jìn)行拆分。剛拆分時(shí),兩個(gè)子Region都位于當(dāng)前的RegionServer,但處于負(fù)載均衡的考慮,HMaster有可能會(huì)將某個(gè)Region轉(zhuǎn)移給其他的RegionServer。RegionSplit時(shí)機(jī):當(dāng)1個(gè)region中的某個(gè)Store下所有StoreFile的總大小超過(guò)Min(initialSize*R^3,hbase.hregion.max.filesize"),該Region就會(huì)進(jìn)行拆分。依照默認(rèn)設(shè)置,具體如下:第一次split閾值

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論