zoukankan      html  css  js  c++  java
  • 读书笔记-HBase in Action-第三部分应用-(1)OpenTSDB

    OpenTSDB是基于HBase的开源监控系统,能够支持上万规模集群监控和上亿数据点採集。

    当中TSDB代表Time Series Database,OpenTSDB在时间序列数据的存储和查询上都做了相当多的优化工作。

    架构Overview

    概念上OpenTSDB由三部分组成:tcollector数据採集、tsd数据服务和HBase数据存储。


    数据採集流程


    如上图。tcollector后台进程执行在每台被监控的server上,管理数据收集脚本,定期执行,失败时重新启动,确保全部的监控数据发送给OpenTSDB。Tcollector将数据写入到tsd,和HBase解耦保持client的轻量级。Tsd通过类似telnet的协议收集数据。所以少量的tsd实例可以支持大量的tcollector写入进程。 

    数据查询流程

    图中tsd负责和HBase进行数据交互,给前端提供HTTP查询接口。全部的tsd进程都是无状态的。这样查询模块能做到负载均衡、线性可伸缩和高可用。

    HBase Schema设计

    OpenTSDB存储的是时间序列metrics,来自于不同的server。数据有不同的种类,每一个点都包括时间戳和測量值。

    并且终于来讲,数据对用户可用,OpenTSDB还必须支持在线数据可视化。这些因素都影响着HBase Schema设计。


    OpenTSDB包含两张表。tsdb表存储时间序列数据。tsdb-uid表存储ID相应关系。管理数据tags等。

    Tsdb-uid表

    Tsdb-uid包含id和name两个列族


    前两行UID-to-name行的UID用于和tsdb表外键关联;后两行name-to-UID行用于支持tag名称的自己主动补齐(通过扫描rowkey高效实现)。

    注意Column qualifier中的metrics代表数据种类,典型的值还包含tag name和tag value。

    比方来自ubuntuserver的mysql.bytes_sent数据。当中mysql.bytes_sent为metrics,host为tag name,ubuntu为tag value。OpenTSDB通过metrics、tag name、tag value组合标记同一监控数据。

    Tsdb表

    Tsdb表的设计重点考虑支持日期范围查找、tag过滤。Tsdb表仅仅有t一个列族。

    首先看rowkey设计:一開始是Metric UID。接着是四个字节的部分时间戳。仅仅到小时粒度,能保证同一指标依照时间顺序存储在一起,又能显著降低行数。

    最后是全部的tag name和tag value UID,满足查询过滤需求。

    接着看column qualifier:首先是时间戳剩余秒部分,后面通过四位掩码做一些额外标记。比方首位标记单元值是整数还是浮点数。


  • 相关阅读:
    Cypress web自动化7-连接器connectors
    Cypress web自动化6- Assertions断言使用(should, expect)
    Cypress web自动化5-table表格元素(别名使用Aliasing)
    Cypress web自动化4-操作页面元素(Actions行为事件)
    Cypress web自动化3- 登录web网站案例脚本
    Cypress web自动化2-pycharm写第一个脚本
    MapReduce实现手机上网流量分析(业务逻辑)
    Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the co
    Input path does not exist: file:/.......
    基于Maven引入Hadoop包报Missing artifact jdk.tools:jdk.tools:jar:1.6
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6774969.html
Copyright © 2011-2022 走看看