3、数据flush过程

 Flush 操作是 Region 级别的,如果触发,是region一起刷,不是store刷自己的

条件:
1.(hbase.regionserver.global.memstore.size)默认;堆大小的40%
regionServer的全局memstore的大小,超过该大小会触发flush到磁盘的操作,默认是堆大小的40%,而且regionserver级别的flush会阻塞客户端读写
 
2.(hbase.hregion.memstore.flush.size)默认:128M
单个region里memstore的缓存大小,超过那么整个HRegion就会flush, 
 
3.(hbase.regionserver.optionalcacheflushinterval)默认:1h
内存中的文件在自动刷新之前能够存活的最长时间

1)当满足一定条件的时候,RegionServer会将数据刷到硬盘,将内存中的数据删除,同时删除HLog中的历史数据;触发参数如下:

hbase.regionserver.global.memstore.size=0.4

hbase.regionserver.global.memstore.size.lower.limit=0.95

hbase.regionserver.optionalcacheflushinterval=3600000

hbase.hregion.memstore.flush.size=134217728(128M)

2)并将数据存储到HDFS中;

3)在HLog中做标记点。

猜你喜欢

转载自blog.csdn.net/qq_42506914/article/details/88665260