OpenTSDB 安装 启动 数据存储

来源:互联网 发布:心理测试 软件 编辑:程序博客网 时间:2024/05/29 12:46

1、安装启动zookeeper并启动

 zkServer.sh start

2、安装hadoop
参考文章:http://www.powerxing.com/install-hadoop-in-centos/
开启 NaneNode 和 DataNode 守护进程

./sbin/start-dfs.sh

3、安装hbase
参考:http://liubin.org/blog/2016/03/05/tsdb-opentsdb/
4、配置hbase对应的环境变量

#set HBASE environmentexport HBASE_HOME=/home/jiankunking/software/hbase-1.3.1export PATH=$PATH:$HBASE_HOME/bin

刷新环境变量:

source /etc/profile

5、启动hbase

nohup ./bin/start-hbase.sh

6、安装opentsdb

git clone git://github.com/OpenTSDB/opentsdb.gitcd opentsdb./build.sh

执行完以上命令后,将会在build文件夹下生成一个tsdb.jar,接下来安装:

cd build/make install

7、初始化opentsdb表结构

env COMPRESSION=NONE ./src/create_table.sh

8、启动opentsdb

sudo build/tsdb tsd --port 14242 --staticroot=/home/jiankunking/software/opentsdb/staticroot --cachedir=/home/jiankunking/software/opentsdb/cachedir --auto-metric

安装过程中问题记录:
1、更新

sudo apt-get -f 

2、问题:./bootstrap: 17: exec: autoreconf: not found

sudo apt-get install autoconf

3、启动habse shell

bin/hbase shell

启动shell之后,输入命令:list

hbase(main):001:0> listTABLE                                                                                                                       tsdb                                                                                                                          tsdb-meta                                                                                                                     tsdb-tree                                                                                                                   tsdb-uid                                                                                                                     4 row(s) in 0.5360 seconds=> ["tsdb", "tsdb-meta", "tsdb-tree", "tsdb-uid"]

3、新增
post http://192.168.179.129:14242/api/put/details

{    "metric": "sys.cpu.nice",    "timestamp": 1346846400,    "value": 18,    "tags": {       "host": "web01",       "dc": "lga"    }}

tsdb

存储数据点

hbase(main):001:0> scan 'tsdb'ROW                                              COLUMN+CELL                                                                                                                                    \x00\x00\x01PG>\xC0\x00\x00\x01\x00\x00\x01\x00 column=t:\x00\x00, timestamp=1495927692942, value=\x12 \x00\x02\x00\x00\x02                                                                                                                                                                          1 row(s) in 0.6230 seconds

小注:10进制数值18转16进制后为:0x12

左面的row key则是 OpenTSDB 的特点之一,其规则为:

<metric_UID><timestamp><tagk1_UID><tagv1_UID>[...<tagkN_UID><tagvN_UID>]

tsdb-uid

用来保存名字和UID(metric,tagk,tagv)之间互相映射的关系,都是成组出现的,即给定一个name和uid,会保存(name,uid)和(uid,name)两条记录。

hbase(main):012:0> scan 'tsdb-uid'ROW                                              COLUMN+CELL                                                                                                                                    \x00                                            column=id:metrics, timestamp=1495927692002, value=\x00\x00\x00\x00\x00\x00\x00\x01                                                             \x00                                            column=id:tagk, timestamp=1495927692081, value=\x00\x00\x00\x00\x00\x00\x00\x02                                                                \x00                                            column=id:tagv, timestamp=1495927692109, value=\x00\x00\x00\x00\x00\x00\x00\x02                                                                \x00\x00\x01                                    column=name:metrics, timestamp=1495927692020, value=sys.cpu.nice                                                                               \x00\x00\x01                                    column=name:tagk, timestamp=1495927692041, value=host                                                                                          \x00\x00\x01                                    column=name:tagv, timestamp=1495927692064, value=web01                                                                                         \x00\x00\x02                                    column=name:tagk, timestamp=1495927692089, value=dc                                                                                            \x00\x00\x02                                    column=name:tagv, timestamp=1495927692113, value=lga                                                                                           dc                                              column=id:tagk, timestamp=1495927692091, value=\x00\x00\x02                                                                                    host                                            column=id:tagk, timestamp=1495927692046, value=\x00\x00\x01                                                                                    lga                                             column=id:tagv, timestamp=1495927692115, value=\x00\x00\x02                                                                                    sys.cpu.nice                                    column=id:metrics, timestamp=1495927692022, value=\x00\x00\x01                                                                                 web01                                           column=id:tagv, timestamp=1495927692073, value=\x00\x00\x01 

这里写图片描述

1.第一条记录:rowkey为\x00,含3个字段:metrics,tagk,tagv,其值分别是已经添加的所有指标、标签名和标签值的数量。这一条数据是系统生成和维护的。这里有两个metrics:cpu和mem,两个key:host和type,两个value:foo和user,所以 rowkey为\x00的三个数据的value都是2

2.在OpenTSDB中,每一个metric、tagk或者tagv在创建的时候被分配一个唯一标识叫做UID,他们组合在一起可以创建一个序列的UID或者TSUID。在OpenTSDB的存储中,对于每一个metric、tagk或者tagv都存在从0开始的计数器,每来一个新的metric、tagk或者tagv,对应的计数器就会加1。当data point写到TSD时,UID是自动分配的。你也可以手动分配UID,前提是auto metric被设置为true。

参考文章:http://blog.csdn.net/bluishglc/article/details/31052749

opentsdb基础概念可以参考:https://yq.aliyun.com/articles/25847

解密OpenTSDB的表存储优化

软件版本:
Ubuntu 16.04.2 LTS
hadoop 2.8.0
hbase 1.3.1
opentsdb 2.3.0

作者:jiankunking 出处:http://blog.csdn.net/jiankunking