
前言:图片是HBase架构图,建议结合架构图,理解flush刷写时机
对于客户端来说,将数据写到内存就结束了。但是对于HBase系统来说这个流程还没有结束,还需要做合久必分,分久必合的操作。在合久必分,分久必合操作之前,还需要做flush操作。
memstore在刷写的时候是有条件限制的,主要包括2点,时间和大小
1、region server的累计memstore的大小,超过堆内存的40%会触发flush到磁盘的操作


2、region server中最后一条数据到达后,1小时内没有新的数据进来,就会自动刷写

3、Region中,累计memstore大小到达128M的时候,这个region的数据都会刷写HDFS

4.当 WAL 文件的数量超过 hbase.regionserver.max.logs,region 会按照时间顺序依次进行刷写,直到 WAL 文件数量减小到 hbase.regionserver.max.log 以下(该属性名已经废弃,
现无需手动设置,最大值为 32)
老版本可以看见这个参数,但是在新版本中这个参数依然存在,但是这个条件不暴露给用户了。
网友评论