HBase ttl 验证

1、HBase 的TTL 应用的需求app

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

    • 公司全部的业务系统的每一次调用过程称之为一次链路 例如: 用户的每次开启充电,从app端的开始调用,到最后充电桩开始将能量输送到车上,这是一个链路
    • 监控系统会将每次链路通过的服务名、服务的参数、响应时间等过程当中的信息从每一个服务节点采集后,存储到消息队列,消息队列的数据一部分用于链路分析,同时会将原始数据持久化到hbase
    • 针对有问题的预警,监控系统会将对应的链路地址以预警的方式推送到开发人员
    • 开发人员收到预警消息以后,会查询此次链路过程当中的原始数据。
      业务处理流程以下:

       

  • 目前上述场景,天天的写入数据量为2.5T左右,数据条数为15亿左右.因为集群规模不大,而且多个业务公用一套集群,集群的写入和查询压力都比较大,大数据表的读写对集群要求较高,很容易形成集群的不稳定,而且大数据表带来的存储成本也是很是之高的
  • 经过对业务的仅一步分析:
    • 目前hbase保留的业务数据,实际上保留周期7天,就能够知足业务要求,所以hbase中的数据不须要长久保存。基于此,须要开始研究HBase的ttl 验证

2、TTL技术验证blog

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

     集群信息以下:开发

        集群一:消息队列

              HBase: 1.1.2io

              存储: HDFS集群

             参数:hbase.hregion.majorcompaction  值:0监控

      集群二:im

             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天)

相关文章
相关标签/搜索