本文共 4058 字,大约阅读时间需要 13 分钟。
最近因为项目需要在读opentsdb的一部分源码,后面会做个小结分享出来。本人是不大喜欢写这种安装部署的文章,考虑到opentsdb安装部署对于初次接触者来说不太友好,另外对公司做测试的同事可能有些帮助作用,方便他们快速安装部署,就把OpenTSDB 2.4.0安装部署文档写在这里。
对于opentsdb是什么,应用领域这里就不说了,不了解的请看官网http://opentsdb.net/
。
这里只提一点,opentsdb
的后端数据存储依赖于HBase
。
所以安装步骤就分为了三步 (我们也可以类比安装传统的依赖关系型数据库比如mysql作为后端数据存储的软件)
安装HBase (类比传统软件我们要安装mysql)
创建表结构 (类比我们在mysql中创建database以及table)
安装配置并启动opentsdb (类比一些springboot的应用)
如果已经有HBase环境了,那么请跳过这一步(大多数使用HBase
集群环境应该都是用CDH
管理)
官网地址: http://hbase.apache.org/
其实HBase
的存储又是依赖HDFS
,当然了如果只是本地测试用,可以直接用本地文件系统
代替HDFS
,这样就不需要部署一套HDFS
集群了
搭建Standalone HBase
,官方文档http://hbase.apache.org/book.html#quickstart
,一步一步都有,请仔细读
这里简单梳理一下关键的地方:
conf/hbase-env.sh
文件# The java implementation to use.export JAVA_HOME=/usr/jdk64/jdk1.8.0_112
conf/hbase-site.xml
文件hbase.rootdir file:///home/itwild/hbase hbase.zookeeper.property.dataDir /home/itwild/zookeeper
然后执行bin/start-hbase.sh
, 启动成功了jps
命令可以看到HMaster
进程。
在standalone模式下,虽然看到的是一个JVM
实例,实际上启了HMaster
、HRegionServer
、ZooKeeper
启动成功,可打开HBase Web UI, http://localhost:16010
执行bin/hbase shell
进入一个交互的界面 (这里我们也可以类比执行mysql -uXXX -pXXX后进入)
在交互界面里我们依次执行下面4条建表(table)语句
# opentsdb中那些metric数据就存在这张表中# 这张表数据会很大,考虑到读写效率,我们注意到这张表就一个列族create 'tsdb',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW'}# opentsdb中建立metric name、tagK、tagV字面量与uid一一对应的表# opentsdb不会存储实际的字符串字面值# 比如system.cpu.util的metric,会将system.cpu.util转化为id(默认自增,后面介绍部分源码的时候会有讲到)后,存入HBase# 这张表有id、name两个列族,可通过id找到name,也可以通过name找到idcreate 'tsdb-uid',{NAME => 'id', BLOOMFILTER => 'ROW'},{NAME => 'name', BLOOMFILTER => 'ROW'}# 下面两张表暂时可不必太关心,先创建出来就好create 'tsdb-tree',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW'}create 'tsdb-meta',{NAME => 'name', BLOOMFILTER => 'ROW'}
注意一下,这里的建表语句我有意把压缩
(COMPRESSION
)选项去掉了,因为存储用的是本地文件系统,有些压缩可能是不支持的,生产环境使用HDFS
的建表语句可能是这样的
create 'tsdb',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}create 'tsdb-uid',{NAME => 'id', BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'},{NAME => 'name', BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}create 'tsdb-tree',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}create 'tsdb-meta',{NAME => 'name', BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}
list
,即可看到上面创建的4张表hbase(main):004:0> listTABLEtsdbtsdb-metatsdb-treetsdb-uid
下载地址:https://github.com/OpenTSDB/opentsdb/releases
这里centos7
系统,选择下载opentsdb-2.4.0.noarch.rpm
包
yum -y localinstall opentsdb-2.4.0.noarch.rpm
如果这里安装报错,可能需要vi /usr/bin/yum
临时改一下python解析器的版本#!/usr/bin/python2.7
,
vi /usr/libexec/urlgrabber-ext-down
同样临时改一下python解析器的版本#!/usr/bin/python2.7
systemctl status/start/stop/restart opentsdb
来查看控制vi /usr/lib/systemd/system/opentsdb.service
添加以下内容
[Unit]Description=OpenTSDB Service[Service]Type=forkingPrivateTmp=yesExecStart=/usr/share/opentsdb/etc/init.d/opentsdb startExecStop=/usr/share/opentsdb/etc/init.d/opentsdb stopRestart=on-abort
然后你就发现可以用systemctl status opentsdb
了,不过现在服务还是dead
状态
注意一下,默认opentsdb配置文件目录:/etc/opentsdb/opentsdb.conf,默认opentsdb日志目录:/var/log/opentsdb
/etc/opentsdb/opentsdb.conf
配置文件tsd.network.port = 4242tsd.http.staticroot = /usr/share/opentsdb/static/tsd.http.cachedir = /tmp/opentsdbtsd.core.auto_create_metrics = truetsd.core.plugin_path = /usr/share/opentsdb/plugins# zookeeper的地址,即hbase依赖的zookeeper的地址,localhost:2181,localhost:2182,localhost:2183tsd.storage.hbase.zk_quorum = localhost:2181tsd.storage.fix_duplicates = truetsd.http.request.enable_chunked = truetsd.http.request.max_chunk = 4096000tsd.storage.max_tags = 16# 这里看到了我们上面在hbase中创建的4张表tsd.storage.hbase.data_table = tsdbtsd.storage.hbase.uid_table = tsdb-uidtsd.storage.hbase.tree_table = tsdb-treetsd.storage.hbase.meta_table = tsdb-meta# 下面几个配置项到部分源码解析的时候会有介绍,暂时可以先忽略# tsd.query.skip_unresolved_tagvs = true# hbase.rpc.timeout = 120000
systemctl start opentsdb
,成功的话,就可以打开opentsdb的界面了http://localhost:4242/
至此,有关opentsdb的安装部署就完成了。后面我会结合opentsdb部分源码分享一些探究性问题。祝君好运!
转载地址:http://ziguz.baihongyu.com/