读书笔记-HBase in Action-第三部分应用-(1)OpenTSDB
OpenTSDB是基于HBase的开源监控系统,能够支持上万规模集群监控和上亿数据点採集。
当中TSDB代表Time Series Database,OpenTSDB在时间序列数据的存储和查询上都做了相当多的优化工作。
架构Overview
概念上OpenTSDB由三部分组成:tcollector数据採集、tsd数据服务和HBase数据存储。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWRvbnR3YW50b2Jl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
数据採集流程
如上图。tcollector后台进程执行在每台被监控的server上,管理数据收集脚本,定期执行,失败时重新启动,确保全部的监控数据发送给OpenTSDB。Tcollector将数据写入到tsd,和HBase解耦保持client的轻量级。Tsd通过类似telnet的协议收集数据。所以少量的tsd实例可以支持大量的tcollector写入进程。
数据查询流程
图中tsd负责和HBase进行数据交互,给前端提供HTTP查询接口。全部的tsd进程都是无状态的。这样查询模块能做到负载均衡、线性可伸缩和高可用。
HBase Schema设计
OpenTSDB存储的是时间序列metrics,来自于不同的server。数据有不同的种类,每一个点都包括时间戳和測量值。
并且终于来讲,数据对用户可用,OpenTSDB还必须支持在线数据可视化。这些因素都影响着HBase Schema设计。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWRvbnR3YW50b2Jl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
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:首先是时间戳剩余秒部分,后面通过四位掩码做一些额外标记。比方首位标记单元值是整数还是浮点数。
读书笔记-HBase in Action-第三部分应用-(1)OpenTSDB的更多相关文章
- HBase in Action前三章笔记
近期接触HBase,看了HBase In Action的英文版.開始认为还行,做了些笔记.可是兴许看下去,越来越感觉到实战这本书比較偏使用上的细节,对于HBase的具体设计涉及得很少.把前三章的一些笔 ...
- 读书笔记-HBase in Action-第一部分 HBase fundamentals
新项目准备上HBase.HBase眼下由组里某牛负责.本着学会使用HBase的目标,先阅读下HBase in Action,一共十章组织成三部分,须要学习的内容包含HBase基本实现原理,用法,Sch ...
- 读书笔记-HBase in Action-第三部分应用-(2)GIS系统
本章介绍用HBase存储.高效查询地理位置信息. Geohash空间索引 考虑LBS应用中常见的两个问题:1)查找离某地近期的k个地点.2)查找某区域内地点. 假设要用HBase实现高效查找,首先要考 ...
- 读书笔记-HBase in Action-第二部分Advanced concepts-(2)Coprocessor
Coprocessor是HBase 0.92.0引入的特性.使用Coprocessor.能够将一些计算逻辑下推到HBase节点,HBase由一个单纯的存储系统升级为分布式数据处理平台. Coproce ...
- Getting Started With Hazelcast 读书笔记(第二章、第三章)
第二章 起步 本章就相当简单粗暴了,用一个个例子说明hazelcast怎么用. 1.map,set,list这些集合类都是开箱即用的,只要从Hazelcast的实例中获取一份就行. 2.增加了Mult ...
- 【读书笔记】.Net并行编程(三)---并行集合
为了让共享的数组,集合能够被多线程更新,我们现在(.net4.0之后)可以使用并发集合来实现这个功能.而System.Collections和System.Collections.Generic命名空 ...
- 【读书笔记】iOS-开发技巧-三种收起键盘的方法
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- 读书笔记-HBase in Action-第二部分Advanced concepts-(1)HBase table design
本章以山寨版Twitter为例介绍HBase Schema设计模式.广义的HBase Schema设计不仅仅包含创建表时指定项,还应该综合考虑Column families/Column qualif ...
- unix-环境高级编程-读书笔记与习题解答-第三篇
第一章 第五节 进程与控制 该小节比较粗略的阐述了unix操作系统中用于进程控制的三个函数,分别为 : fork , exec, waitpid, 其中 exec 有五种变体, 这些变体实现的功能全部 ...
随机推荐
- JAVA常见算法题(二十一)
package com.xiaowu.demo; //求1+2!+3!+...+20!的和. public class Demo21 { public static void main(String[ ...
- 设计模式之装饰器模式(PHP实现)
/** * 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. * 这种模式创建了一个 ...
- window linux 文件传输
window 安装:pscp.exe (放在C:\Windows\System32 目录下) Linux 安装: 1: 先更新apt-getroot@ubuntu:/home/ubuntu# sudo ...
- 安全小测试:介绍一个简单web安全知识测试的网站
https://websecurity.firebaseapp.com/ 一次测试一共7道题,最后有答案,可以反复做,每次随机抽题
- 针对访问uri 限制ip
在虚拟主机配置文件中加入如下字段: <filesmatch "(.*)admin(.*)"> Order deny,allow ...
- Vue表单和组件
一.表单 v-model 指令在表单控件元素上创建双向数据绑定,v-model 会根据控件类型自动选取正确的方法来更新元素. <input v-model="message" ...
- jqGrid怎么设置初始化页面时不加载数据(不向服务器请求数据)
最近做一些表格一直用到jqGrid,今天遇到一个问题: 1.就是页面加载的时候数据不显示,点击搜索才根据请求从服务器返回并显示内容. 2.默认不从服务器请求数据(不然在开发者工具下会显示请求不到数据的 ...
- Android源码和内核源码的下载,编译和执行
笔者依据罗升阳老师的<Android 系统源码情景分析>一书,尝试下载,编译和执行Android源码和内核源码.但可能是软件源"被墙"或版本号更新的原因.期间遇到诸多问 ...
- [转载]linux 清除系统cached
FROM: http://cqfish.blog.51cto.com/622299/197230 linux 清除系统cached top查看系统内存使用情况 Mem: 16432180k ...
- linux配置jdk失败
在linux下配置jdk时,/etc/profile下的配置内容是对的,可是输入java -version却发现配置没有成功,这一般都是jdk的安装文件夹权限没有提升的原因,仅仅需用chmod -R ...