码迷,mamicode.com
首页 > 数据库 > 详细

读书笔记-HBase in Action-第三部分应用-(1)OpenTSDB

时间:2014-07-30 17:33:34      阅读:510      评论:0      收藏:0      [点我收藏+]

标签:hbase   opentsdb   

OpenTSDB是基于HBase的开源监控系统,可以支持上万规模集群监控和上亿数据点采集。其中TSDB代表Time Series Database,OpenTSDB在时间序列数据的存储和查询上都做了相当多的优化工作。

架构Overview

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

bubuko.com,布布扣

数据采集流程

bubuko.com,布布扣

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

数据查询流程

bubuko.com,布布扣

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

HBase Schema设计

OpenTSDB存储的是时间序列metrics,来自于不同的服务器,数据有不同的种类,每个点都包含时间戳和测量值。而且最终来讲,数据对用户可用,OpenTSDB还必须支持在线数据可视化。这些因素都影响着HBase Schema设计。

bubuko.com,布布扣

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

Tsdb-uid表

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

bubuko.com,布布扣

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

bubuko.com,布布扣

注意Column qualifier中的metrics代表数据种类,典型的值还包括tag name和tag value。比如来自ubuntu服务器的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,满足查询过滤需求。

bubuko.com,布布扣

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

bubuko.com,布布扣

读书笔记-HBase in Action-第三部分应用-(1)OpenTSDB,布布扣,bubuko.com

读书笔记-HBase in Action-第三部分应用-(1)OpenTSDB

标签:hbase   opentsdb   

原文地址:http://blog.csdn.net/idontwantobe/article/details/38302097

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!