大数据-OpenTSDB
mt0803
玩大数据的一个码农
展开
-
OpenTsdb 核心设计
RowKey设计openTsdb的rowkey设计充分利用了HBase中索引信息仅在rowkey中的特点,它将指标metric,时间戳,数据值,tag标签名,tag标签值都包含在rowkey中,具体的设计如下图所示: 如上图按照metric_name timestamp tagk tagv的顺序链接起来形成rowkey, 同时考虑到metric_name, tagk, tagv在连续不同时间存储的原创 2016-01-05 17:41:32 · 2839 阅读 · 2 评论 -
OpenTsdb 写入数据
1. 关于 Metrics, value, tag name, tag valueopentsdb的每个时间序列必须有一个metric和一个或多个tag对,每个时间序列每小时的数据保存一行。opentsdb的metrics, tag name, tag value的编码长度都是3byte, 所以UID的数量上限为 2^24 个。编码长度可以扩展到 8byte,即2^64 个, 一般不建议修改。原创 2016-01-05 17:43:31 · 4595 阅读 · 1 评论 -
OpenTSDB 使用时 推荐配置
OpenTSDB所有的配置都在 link. 这里列出来的配置基本都有默认值,但是有些需要根据环境和性能做出改变,具体如下表: 配置项 默认值 描述 修改值 tsd.core.preload_uid_cache false 是否在TSD启动的时候,预热UID缓存数据,为了提升性能,需要开启 true tsd.core.auto_create_metrics fal原创 2016-01-05 17:45:24 · 6567 阅读 · 0 评论 -
OpenTSDB TroubleShooting
1. OpenTSDB compactions 触发很大的.tmp文件 和 RegionServer crash.在默认的情况下,TSD会缓存一个metric在一个小时内的数据,然后组合数据一次性刷写到HBase。 如果时间戳使用的ms级别,那么一次性刷写会导致巨大量的流量到HBase, 数量庞大的qualifier和rowkey会达达超过hfile.index.block.max.size形成大量原创 2016-01-05 17:46:32 · 1517 阅读 · 0 评论 -
OpenTSDB 存储容量估算 以及 建表方式
容量估算根据 Rowkey以及表设计,进行存储容量估算的方式,大致如下: rowkey: metric_name + ts + tag_name + tag_value …..确定metric_name的个数: m 确定tag_name: tag1 tag2 tag3 tag4….tagN 确定tag_value的个数: t1 t2 t3 t4 ….tn原创 2016-01-05 17:48:28 · 4448 阅读 · 1 评论 -
OpenTSDB PreSplit Table
Reference Issure Ref2如果metric热度相差不大,即没有某些metric的time series特别多,比如百万级别,而某些metric的time series特别少,比如千级别。 pre split 设计可以如下: start key: \x00\x00\x01 end key: \x00\x08\x00 // 假设有2048个metrics原创 2016-01-05 17:51:58 · 1339 阅读 · 2 评论