hbase的memstore刷写到hdfs是受两个因素控制:大小和时间
以下是找了几个常用的参数,看一下
下面,RegionServer级别的配置,数据量到达RegionServer所运行的JVM的堆内存的40%的时候进行Flushing
<property>
<name>hbase.regionserver.global.memstore.size</name>
<value>0.4</value>
<description>Maximum size of all memstores in a region server before new updates are blocked and flushes are forced. Defaults to 40% of heap (0.4). Updates are blocked and flushes are forced until size of all memstores in a region server hits hbase.regionserver.global.memstore.size.lower.limit. The default value in this configuration has been intentionally left empty in order to honor the old hbase.regionserver.global.memstore.upperLimit property if present.</description>
</property>
下面,是Region级别的配置,当Region里面的数据量达道256M的时候进行Flushing
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>268435456</value>
<description>
<description>Memstore will be flushed to disk if size of the memstore exceeds this number of bytes. Value is checked by a thread that runs every hbase.server.thread.wakefrequency.</description>
</property>
下面,是RegionServer级别的配置,以最后一次操作RegionServer内存的时间开始算,到达1小时就开始刷写
<property>
<name>hbase.regionserver.optionalcacheflushinterval</name>
<value>3600000</value>
<description>Maximum amount of time an edit lives in memory before being automatically flushed. Default 1 hour. Set it to 0 to disable automatic flushing.</description>
</property>