微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HBase ttl 验证

一、HBase 的TTL 应用的需求

       全链路的持久化为HBase的一个应用场景,主要实现的场景描述如下:

    • 公司所有的业务系统的每一次调用过程称之为一次链路 例如: 用户的每次开启充电,从app端的开始调用,到最后充电桩开始将能量输送到车上,这是一个链路
    • 监控系统会将每次链路经过的服务名、服务的参数、响应时间等过程中的信息从每个服务节点采集后,存储到消息队列,消息队列的数据一部分用于链路分析,同时会将原始数据持久化到hbase
    • 针对有问题的预警,监控系统会将对应的链路地址以预警的方式推送到开发人员
    • 开发人员收到预警消息之后,会查询这次链路过程中的原始数据。
  • 目前上述场景,每天的写入数据量为2.5T左右,数据条数为15亿左右.由于集群规模不大,并且多个业务公用一套集群,集群的写入和查询压力都比较大,大数据表的读写对集群要求较高,很容易造成集群的不稳定,并且大数据表带来的存储成本也是非常之高的
  • 通过对业务的仅一步分析:
    • 目前hbase保留的业务数据,实际上保留周期7天,就可以满足业务要求,因此hbase中的数据不需要长久保存。基于此,需要开始研究HBase的ttl 验证

二、TTL技术验证

      目前网上关于TTL的验证,版本较多,有一个比较大的问题是,使用TTL之后,数据是否可以自动删除

     集群信息如下:

        集群一:

              HBase: 1.1.2

              存储: HDFS

             参数:hbase.hregion.majorcompaction  值:0

      集群二:

             HBase: 1.1.2

             存储:Azure WASB

             参数:hbase.hregion.majorcompaction  值:0

   验证过程:

        1.创建表

            

      2.开启TTL
          

 

         3.开启数据写入,经过验证发现

              数据可以自动删除

                  表目录和删除的临时目录均可以自动删除

                 /apps/hbase/data/data/default/TTraceTest
                  /apps/hbase/data/archive
 

总结:

    1.1.1.2 版本的hbase 的表开启ttl之后,数据可以自动删除, 目前在小表上进行了2个小时的验证,下一步将在大表写入上开启较长时间的验证(比如TTL 保留7天)

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐