说明
当 MemStore 超过阀值的时候,就要 flush 到 HDFS上生成一个HFile。
因此随着不断写入,HFile的数量将会越来越多,数量过多会降低读性能。
为了避免对读性能的影响,可以对这些HFile进行 compact 操作,把多个HFile合并成一个HFile。
compact操作需要对HBase的数据进行多次的重新读写,因此这个过程会产生 大量的IO。可以看到compact操作的本质就是以IO操作换取后续的读性能的提高。
Compact两种方式
Minor Compact
HBase会自动选取 一些较小的HFile进行合并,并将结果写入几个较大的HFile中。
Minor compaction通过Merge sort的形式将较小的文件合并为较大的文件,从而 减少了存储的HFile的数量,提升HBase的性能。
注意:不做任何删除数据、多版本数据的清理工作
