[HBase] major_compact不工作

[HBase] major_compact不工作

Hadoop-0.20.1-cdh3u0HBase-0.90.2-cdh3u0

场景如下:

建一张表TableTTLttl设定例如为86400*2,这样里面的数据只是最近2天内有效而已。

并且该表是一开始只有一个Region(这也是默认的create table

然后不停对此表put数据,大量地put

最后,该表不停的split出很多region,但会发现该表不会做每天(默认值)的Major Compaction


这是由于每个新split出来的region下面都只有一个StoreFile时,会导致这个问题:

Store.isMajorCompaction()里面,当一个Store下面只有一个StoreFile时,

判断完ttl后忘了返回一个true来证明就算只有一个文件也要做major compaction


[Split]时,会把多个StoreFiles合并为一个?

split到最后,已经分好ABopen region后,准备向ZooKeeper上注册时,

会坚持是否Reference或者需要Compaction的,此时会把Daughter A, B都做一次

compact操作,所以就只剩下一个StoreFile了。

猜你喜欢

转载自erwinchow.iteye.com/blog/1668359