hbase集群表在线调整(TTL/compression)

本文讲述了如何解决HBase集群中一个表数据过大问题,通过与业务方沟通决定只保留最近93天的数据,并开启LZO压缩。分析了在线修改表属性、生效时机和手动生效的可能性,探讨了compact过程中的压缩和TTL设置,并讨论了操作对线上集群的影响,指出该操作不会直接影响数据且不会干扰读写操作。
摘要由CSDN通过智能技术生成


      今天发现hbase集群的hdfs使用量已经接近80%,检查发现一个表数据量特别巨大,该表会记录用户每天的一次活动属性,按照4亿用户*197天,有800亿条的数据存放在表中——4TB,对于一个表来说过于大了。有两个问题:1、未开启压缩;2、没设置TTL

      经过和业务方讨论,只保留最近93天(3个月)的数据,然后开启LZO压缩。

      理论上所有的表都应该开启压缩,但是早期使用时没对业务方进行限制,导致现在有些表没开启压缩,而数据量又特别大,所以考虑在线开启压缩和TTL。

      那么就需要考虑几点问题:

      1、在线修改表属性是否稳定,0.92版本引入后作者也不保证100%成功,慎用

      2、修改后是否生效,在哪一步生效

      3、能否手动使其生效

      

       考虑hbase写模型,压缩发生在HFile文件需要写HDFS的过程,这个过程有3种,第一:flush、第二:split、第三:compact。而对于已经存在的数据,应该只能在compact阶段进行。compact的原理是读region中已有的HFile,然后写新HFile,理论上应该能保证新HFile写的时候是压缩的。

       查看代码:compact过程分为普通compact和majorcompact,普通compact就是N个文件合一个,N可以设置;majorcompact就是region下所有的文件合1个。先读取原有文件,然后写新HFile:

       对旧文件的scan࿱

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值