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