我有一个单独运行的HBase(没有hadoop)实例
机。
更新某些列定义后,它最初是32G
从外壳:
alter 'table', {NAME =>'mycol', TTL => <two_months>}
alter 'table', {NAME =>'mycol', COMPRESSION => 'GZ'}
数据存储已从32G一夜之间增长到51G(不是由新数据引起的!)。我希望该表会缩小,因为大多数条目都早于two_months。另外,我还要求对列进行压缩。
我想了解为什么运行alter命令导致大小大量增加,我可以期望它再次缩小吗?
我原以为它会在下一次大压实时缩小,已经超过24小时,
惊讶的是还没有发生。
最佳答案
如hanhanic所述,对于TTL问题,只需强制进行一次重大压实即可。尽管由于hbase还没有一种自动合并块的方法(jira中存在有关问题),所以压缩比较棘手,因此您的块(区域)数不会改变。当我切换压缩时,我更喜欢导出->截断->重新导入数据。
小提示:如果大小有问题,最简单的优化就是将VERSIONS值降低(如果可能的话降低到1)。我想你已经做到了。