HBase Flush操作流程以及对读写服务的影响

四月 19th, 2013 by klose | No Comments | Filed in 海量数据存储与处理

HBase Flush操作流程以及对读写服务的影响   HBase的Flush操作的触发条件: 1)Manual调用,HRegionInterface#flushRegion,可以被用户态org.apache.hadoop.hbase.client.HBaseAdmin调用flush操作实现,该操作会直接触发HRegion的internalFlush。 2)HRegionServer的一次更新操作,使得整个内存使用超过警戒线。警戒线是globalMemStoreLimit, RS_JVM_HEAPSIZE * conf.getFloat(“hbase.regionserver.global.memstore.upperLimit”),凡是超过这个值的情况,会直接触发FlushThread,从全局的HRegion中选择一个,将其MemStore刷入hdfs,从而保证rs全局的memstore容量在可控的范围。   RS上HRegion的选择算法: 步骤1:RS上的Region,按照其MemStore的容量进行排序。 步骤2:选出Region下的Store中的StoreFile的个数未达到hbase.hstore.blocking

Tags: , , , ,