- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
云HBase之时许引擎-OpenTSDB介绍与压缩优化
展开查看详情
1 . 云HBase之时序引擎 OpenTSDB介绍&压缩优化 —— 郭泽晖 阿里云技术专家 中国 HBase 技术社区网站:http://hbase.group
2 . 目录 / Contents 01 OpenTSDB介绍 02 OpenTSDB常见问题 03 OpenTSDB压缩优化 04 云OpenTSDB使用模式 中国 HBase 技术社区网站:http://hbase.group
3 . 01 OpenTSDB介绍 中国 HBase 技术社区网站:http://hbase.group
4 . 1 OpenTSDB介绍 OpenTSDB是⼀一款基于HBase构建的时序数据库 时序数据特点: 1.数值类型(整数,浮点) 2.数据通常按照时间顺序抵达,源源不不断 3.基本不不会更更新数据 4.写多读少 中国 HBase 技术社区网站:http://hbase.group
5 . 1 OpenTSDB介绍 中国 HBase 技术社区网站:http://hbase.group
6 . 1 OpenTSDB介绍 SLB 部署架构 中国 HBase 技术社区网站:http://hbase.group
7 . 1 OpenTSDB介绍 定义 Data Point (timestamp, value) { Tags(tagK=tagV1, …) Time Series Metric Tags(tagK=tagV2, …) Time Series 时间精度⽀支持:秒/毫秒 中国 HBase 技术社区网站:http://hbase.group
8 . 1 OpenTSDB介绍 数据表设计 RowKey Column Column Column 001 + 1552640400 + 002003 + 004005 timeOffset=0, timeOffset=3256, …… 1⼩小时 value=50 value=100 映射成UID 转换成⼩小时起始整秒 映射成UID 映射成UID 1552643656 - 3256 写⼊入=> metric=host.cpu, timestamp=1552643656, tags={region:HangZhou, host:30.43.111.255}, value=100 每条时间线每⼩小时数据存⼀一⾏行行,数据点只记录和这个⼩小时起始时间戳偏移量量,以减少存储空间。 中国 HBase 技术社区网站:http://hbase.group
9 . 1 OpenTSDB介绍 RowKey数据格式 salt metric timestamp tagK1 tagV1 tagKN tagVN 1B 3B 4B 3B 3B 3B 3B salt:打散同⼀一metric不不同时间线的热点 metric, tagK, tagV:实际存储的是字符串串对应的UID(在tsdb-uid表中) timestamp:每⼩小时数据存在⼀一⾏行行,记录的是每⼩小时整点秒级时间戳 Tips:metric和tag的⻓长度默认是3个字节,即最多只能分配 16777216个UID。可以通过这些参数调整: tsd.storage.uid.width.metric,tsd.storage.uid.width.tagk,tsd.storage.uid.width.tagv。注意集群已经写过 数据后就⽆无法修改。 中国 HBase 技术社区网站:http://hbase.group
10 . 1 OpenTSDB介绍 Column qualifier 数据格式 Timestamp offset Float flag Value len 秒级(2 Bytes) 12b 1b 3b MS flag Timestamp offset Empty Float flag Value len 毫秒级(4 Bytes) 4b 22b 2b. 1b 3b 中国 HBase 技术社区网站:http://hbase.group
11 . 02 OpenTSDB常见问题 中国 HBase 技术社区网站:http://hbase.group
12 . 2 OpenTSDB常见问题 写⼊入热点与查询并发的权衡 并发N个查询请求到HBase Scanner SaltScanner Scanner Scanner HBase …… Tips:并发度取决于tsd.storage.salt.buckets(默认20),设置后不不能修改。 建议不不要多于RS数量量,并发太⾼高容易易打爆HBase。 中国 HBase 技术社区网站:http://hbase.group
13 . 2 OpenTSDB常见问题 Tags的笛卡尔积影响查询效率 Tag⽆无索引 假设⼀一个监控机器器CPU情况的metric=host.cpu,有3个tag:region, host, core { region:机房区域,假设有10个 host:主机名,假设每个机房有100台 salt metric timestamp tagK tagV tagK tagV core:cpu单核编号,假设每个主机有8个核(0-7) 那么这个metric会包含region(10) x host(100) x core(8) = 8000 条时间线 当你查询最近1⼩小时{region=HangZhou, host=30.43.111.255, core=0}数据的时候, 实际上得访问8000条时间线的最近1⼩小时数据。 中国 HBase 技术社区网站:http://hbase.group
14 . 2 OpenTSDB常见问题 ⼀一些查询的其他坑 1.数据点要全部攒到TSDB内存后才会开始聚合处理理,容易易OOM,不不是流式处理理 2.⼀一个⼤大查询只会落在⼀一台TSDB上被处理理,不不能分布式处理理 3.即使查最近15分钟数据,也会遍历最近1⼩小时数据 中国 HBase 技术社区网站:http://hbase.group
15 . 2 OpenTSDB常见问题 OpenTSDB压缩问题:整点对HBase产⽣生流量量冲击 整点OpenTSDB对数据进⾏行行压缩会对HBase发起⼤大量量IO请求 OpenTSDB集群⽹网络 导致⻓长时间的数倍流量量波峰,很容易易打爆HBase 这样需要更更⾼高的规格抗波峰 HBase集群⽹网络 中国 HBase 技术社区网站:http://hbase.group
16 . 2 OpenTSDB常见问题 OpenTSDB压缩问题:整点对HBase产⽣生流量量冲击 OpenTSDB压缩原理理是将离散的 KV合成⼀一个⼤大KV,减少重复字 段。 所以在整点会有读-压缩-重写-删 这样⼀一波流量量产⽣生。 中国 HBase 技术社区网站:http://hbase.group
17 . 2 OpenTSDB常见问题 OpenTSDB压缩问题:整点对HBase产⽣生流量量冲击 测试集群只做写操作,通过HBase具体的性能指标能观测到整点读写的波峰 HBase写请求流量量 HBase读请求流量量 中国 HBase 技术社区网站:http://hbase.group 注:忽略略15:00前的数据,是⼀一些其他操作导致
18 . 03 OpenTSDB压缩优化 中国 HBase 技术社区网站:http://hbase.group
19 . 3 OpenTSDB压缩优化 云HBase团队针对OpenTSDB压缩问题的优化⽅方案 将OpenTSDB压缩过程下沉到底层HBase 复⽤用HBase压缩过程中的流量量,本身HBase 压缩就会对数据读写,在这时候做处理理 中国 HBase 技术社区网站:http://hbase.group
20 . 3 OpenTSDB压缩优化 云HBase团队针对OpenTSDB压缩问题的优化⽅方案 HBase压缩过程原理理: 在合并HFile的时候将KV按 OpenTSDB数据格式合并 中国 HBase 技术社区网站:http://hbase.group
21 . 3 OpenTSDB压缩优化 云HBase团队针对OpenTSDB压缩问题的优化⽅方案 测试集群只做写操作,完全消除对HBase的流量量波峰 OpenTSDB⽹网络 HBase写⼊入流量量 中国 HBase 技术社区网站:http://hbase.group
22 . 04 云OpenTSDB使用模式 中国 HBase 技术社区网站:http://hbase.group
23 . 4 云OpenTSDB使用模式 独享模式:完全独⽴立部署的时序数据库 SLB 适合时序业务较重,需要分离部署 数 TSDB TSDB 据 库 RegionServer RegionServer 实 例例 ECS ECS 中国 HBase 技术社区网站:http://hbase.group
24 . 4 云OpenTSDB使用模式 SLB 共享模式:复⽤用已购买的云HBase 数 据 TSDB TSDB 库 业 实 务 适合时序业务较⼩小,或者⽤用不不满云HBase资源 A ECS ECS 例例 业 务 B 中国 HBase 技术社区网站:http://hbase.group 云HBase实例例
25 . THANK YOU HBase 技术社区公众号 社区管理员 HBase + Spark 钉钉社区大群 中国 HBase 技术社区网站:http://hbase.group