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万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。