我在一个单独运行HBase(没有hadoop)的独立实例 机。
在更新了一些列定义之后,它最初是在32G 来自shell:
alter 'table', {NAME =>'mycol', TTL => <two_months>}
alter 'table', {NAME =>'mycol', COMPRESSION => 'GZ'}
数据存储从32G增长到51G(不是由新数据引起的!)。我期待这个表缩小,因为大多数条目都超过了2个月。另外,我已要求对列进行压缩。
我想了解为什么运行alter命令导致了大规模的增加,我可以期待它再次缩小吗?
我期待它在下一次重大压缩时收缩,它已经> 24小时,我 惊讶它还没有发生。
答案 0 :(得分:1)
对于TTL问题,正如juhanic所说的那样强迫进行重大压缩。压缩是比较棘手的,因为hbase还没有自动合并块的方法(在jira中有关于它的问题),你的块(区域)数量不会改变。当我切换压缩时,我更喜欢导出 - &gt;截断 - &gt;重新导入数据。
小提示:如果大小是问题,最简单的优化是降低VERSIONS值(如果可能的话,降低到1)。我猜你已经这样做了。