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