OpenTSDB的常见问题

OpenTSDB的compact操作是为了节约存储,那么其是否在读取的时候存在逆向处理的过程?

OpenTSDB的compact只是把数据从多个KeyValue压成一个KeyValue,并没有做其他的工作,而Query的时候,无论有没有进行compact,OpenTSDB总是会根据rowkey进行scan,并且对具有相同的rowkey的KeyValue进行合并,然后进行后续的数值的翻译,再处理好,以rows的形式返回给前端/调用方。如果预先进行了compact,对于Query的性能显然是有帮助的

一个集群中部署了多个OpenTSDB节点后,其各自的compact是否存在冲突、资源浪费或是饥饿?

数据从多个OpenTSDB流入,单个OpenTSDB将只持有经由自己流入的数据的rowkey,如果集群中全部开启了compact,那么每个OpenTSDB节点都将对存在于自己的queue中的rowkey进行周期性的scan、merge,然后写入合并后的cell,删除其它。这个读写的过程,不会存在饥饿,一方面因为,compact并不需要一定凑全一整个row,减少Cell数量同样是积极的,另一方面,任何节点都可以根据rowkey去检索到当前HBase中全部的Cell。这个操作尽管是幂等的,但是必然会为HBase带来多余的读写开销以及OpenTSDB层面的负载。集群模式下,推荐使用单独的节点进行compact操作。

OpenTSDB的查询带来的compaction

OpenTSDB的查询,是通过转义指定的查询条件为rowkey来对HBase进行scan。对于指定的测点与tag,同一个小时的数据有着相同的rowkey,故在这个过程中,OpenTSDB将会以小时为粒度对数据进行merge与sort。因而即使没有开启compact选项,查询的过程中也会进行一次若干KeyValue合并为一个KeyValue的过程,并且该合并操作将写入HBase并删除原始数据,该操作与compaction是等效的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HBase那些事 @(大数据工程学院)[HBase, Hadoop, 优化, HadoopChen, hbase]...
    分痴阅读 3,976评论 3 17
  • HBase存储架构图 HBase Master 为Region server分配region 负责Region s...
    kimibob阅读 5,611评论 0 52
  • 从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流。 转载请声明出处:h...
    Maggie编程去阅读 1,573评论 0 9
  • ****什么是Hbase**** Hbase是一种基于HDFS的分布式数据库 支持海量的数据的存储,千亿、万亿级别...
    一只小哈阅读 2,947评论 1 7
  • Java之美[从菜鸟到高手演变]之设计模式 Java之美[从菜鸟到高手演变]之设计模式二 Java之美[从菜鸟到高...
    Q南南南Q阅读 261评论 0 0