在HBase中,每当有memstore数据flush到磁盘之后,就会形成一个storefile,当storefile的数量达到一定程度后,就需要将storefile文件来进行compact操作。compact的作用主要包括以下几个方面:
- 合并文件
- 清除过期、多余版本的数据
- 提高数据读写的效率
HBase中实现了两种compact的方式,分别为minor和major这两种,这两种方式的区别是:
- minor操作只用来做部分文件的合并以及minorVersion=0并且设置ttl的过期版本的清理,不做任何删除数据、多版本数据的清理工作。
- major操作是对Region下的HStore下的所有StoreFile执行合并操作,最终的结果是整理合并出一个文件。