一.基本说明
- openTSDB是基于Hbase的时序数据库[时间序列数据库底层存储hbase之上,适合存储具有时间特性的数据
- openTSDB本身没有分布式的实现方案,而是借助于HBase的分布式集群方案,也就是说,master、slave1、slave2三个物理节点之上的openTSDB访问同一个HBase集群,返回相同的数据镜像
- openTSDB 可以提供原始数据的查询,具备对原始数据的聚合能力,支持过滤、过滤之后的聚合计算
- openTSDB 海量数据查询局限性:OpenTSDB 在数据量小时是可用的,在千万级、亿级中提取几万条数据,比如某个指标半年内的5分钟级别的数据,还是很快响应的但如果再提取多点数据,几十万,百万这样的量级,又或者提取后再做个聚合运算,OpenTSDB 就勉为其难啦,原因有几点:
【1】OpenTSDB 目前还是单点做聚合运算,我所知道的大的云商如阿里云HiTSDB、数据库在这点做了改造,解决了这个瓶颈。
【2】这样的量级数据从HBase 中提取到单节点内存中进行聚合运算,在资源消耗方面不可忽视。
【3】一个查询一旦提取的量级大,OpenTSDB 向HBase 发起RPC 请求(OpenTSDB 一次请求默认128行)次数也必然增加,十几秒、几十秒的响应时间,这就限制了它的应用场景。
二.环境版本
- 操作系统:无要求
- java版本: 1.7.0_67
- Opentsdb服务版本:tsdb-2.3.0
- HBase版本: HBase 1.2.0-cdh5.11.1
服务部署节
主机名称 IP地址
hdfs-1.online.com x.x..x.10
hdfs-2.online.com x.x.x.222
hdfs-3.online.com x.x.x.188
三.服务部署
1.下载安装
10.9.43.67 机器 /data/apps/download目录下开启httpd
python -m SimpleHTTPServer 18080
安装目标机器下载&安装
wget 'http://10.9.43.67:18080/opentsdb-2.3.0.rpm'
yum localinstall opentsdb-2.3.0.rpm -y
2.安装成功以后需要在/usr/share/opentsdb/tools执行以下脚本进行hbase表的创建。
env COMPRESSION=NONE HBASE_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hbase /usr/share/opentsdb/tools/create_table.sh
3.在/etc/opentsdb修改配置文件/opentsdb.conf
完整的配置如下:
主要修改参数如下:
tsd.network.port = 4249
tsd.storage.fix_duplicates = true
tsd.storage.salt.width = 1
tsd.storage.salt.buckets = 10
tsd.http.request.enable_chunked=true
tsd.http.request.max_chunk=65536
tsd.http.request.cors_domains=*
tsd.storage.hbase.zk_quorum = x.x.x.x:2181,x.x.x.x:2181,x.x.x.x:2181
tsd.core.auto_create_metrics = true
四.TSDB常用命令
/usr/share/opentsdb/etc/init.d/opentsdb {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
日志目录 /var/log/opentsdb/
参考Opentsdb-2.3.1在centos7.2上的安装与启动_Smart_ZS的博客-CSDN博客