1. 寫流程:
1、client向hregionserver發(fā)送寫請(qǐng)求。
2、hregionserver將數(shù)據(jù)寫到hlog(write ahead log)。為了數(shù)據(jù)的持久化和恢復(fù)。
3、hregionserver將數(shù)據(jù)寫到內(nèi)存(memstore)
4、反饋client寫成功。
2. 數(shù)據(jù)flush:
1)當(dāng)memstore數(shù)據(jù)達(dá)到閾值(默認(rèn)是128M)或region中所有Memstore的大小總和達(dá)到了上限(默認(rèn) 2*128 = 256MB)會(huì)觸發(fā)將將數(shù)據(jù)刷到硬盤,將內(nèi)存中的數(shù)據(jù)刪除,同時(shí)刪除Hlog中的歷史數(shù)據(jù)。
2)并將數(shù)據(jù)存儲(chǔ)到hdfs中。
3)在hlog中做標(biāo)記點(diǎn)。
3. 數(shù)據(jù)compact(合并):
將storefile 中的hfile 合并成大的hfile;
在hbase中主要存在兩種類型的compaction合并
minor compaction 小合并
在將Store中多個(gè)HFile合并為一個(gè)HFile,對(duì)于超過(guò)了TTL的數(shù)據(jù)、刪除的數(shù)據(jù)僅僅只是做了標(biāo)記。
major compaction 大合并
合并Store中所有的HFile為一個(gè)HFile,清理三類無(wú)意義數(shù)據(jù):被刪除的數(shù)據(jù)、TTL過(guò)期數(shù)據(jù)、版本號(hào)超過(guò)設(shè)定版本號(hào)的數(shù)據(jù)。默認(rèn)7天執(zhí)行一次,并且性能消耗非常大。手動(dòng)觸發(fā):major_compact tableName
4. 讀流程
1、通過(guò)zookeeper和-ROOT- .META.表定位region
2、hbase會(huì)首先在布隆過(guò)濾器中查詢(如果設(shè)置的話),然后MemStore,BlockCache(LRUCache存放最近讀取數(shù)據(jù)),磁盤的HFile,找到并存儲(chǔ)到BlockCache
3、數(shù)據(jù)塊會(huì)緩存
5. hregionserver的職責(zé)
HRegion Server主要負(fù)責(zé)響應(yīng)用戶I/O請(qǐng)求,向HDFS文件系統(tǒng)中讀寫數(shù)據(jù),是HBASE中最核心的模塊。
HRegion Server管理region。
更多關(guān)于“大數(shù)據(jù)培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽(tīng)。