centos7安装部署opentsdb2.4.0
centos7安装部署opentsdb2.4.0
写在前面
安装HBase
在HBase中创建表结构
安装配置并启动opentsdb
写在前面
最近因为项目需要在读opentsdb的一部分源码,后面会做个小结分享出来。本人是不大喜欢写这种安装部署的文章,考虑到opentsdb安装部署对于初次接触者来说不太友好,另外对公司做测试的同事可能有些帮助作用,方便他们快速安装部署,就把OpenTSDB 2.4.0安装部署文档写在这里。
对于opentsdb是什么,应用领域这里就不说了,不了解的请看官网http://opentsdb.net/。
这里只提一点,opentsdb的后端数据存储依赖于HBase。
所以安装步骤就分为了三步 (我们也可以类比安装传统的依赖关系型数据库比如mysql作为后端数据存储的软件)
安装HBase (类比传统软件我们要安装mysql)
创建表结构 (类比我们在mysql中创建database以及table)
安装配置并启动opentsdb (类比一些springboot的应用)
安装HBase
如果已经有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实际存放数据地方,这里是本地文件系统,生产环境一般HDFS地址,例如hdfs://namenode.example.org:8020/hbase --> <name>hbase.rootdir</name> <value>file:///home/itwild/hbase</value>
<!--
指定zookeeper的data目录
目前hbase需要依赖zookeeper,HBase通过Zookeeper来做Master的高可用、RegionServer的监控、元数据的入口以及
集群配置的维护等工作
因为是Standalone,为了降低部署复杂度,启动的时候也会启zookeeper,指定zk data存储目录,实际使用大多用单独的zk集群,一般不使用内置的zk
--> <name>hbase.zookeeper.property.dataDir</name> <value>/home/itwild/zookeeper</value>
然后执行bin/start-hbase.sh, 启动成功了jps命令可以看到HMaster进程。
在standalone模式下,虽然看到的是一个JVM实例,实际上启了HMaster、HRegionServer、ZooKeeper
启动成功,可打开HBase Web UI, http://localhost:16010
在HBase中创建表结构
执行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找到id
create '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'}
在hbase shell的交互界面中执行list,即可看到上面创建的4张表
hbase(main):004:0> list
TABLE
tsdb
tsdb-meta
tsdb-tree
tsdb-uid
安装配置并启动opentsdb
下载地址: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
把opentsdb的服务注册为系统服务,即可以用systemctl status/start/stop/restart opentsdb来查看控制
vi /usr/lib/systemd/system/opentsdb.service添加以下内容
[Unit]
Description=OpenTSDB Service
[Service]
Type=forking
PrivateTmp=yes
ExecStart=/usr/share/opentsdb/etc/init.d/opentsdb start
ExecStop=/usr/share/opentsdb/etc/init.d/opentsdb stop
Restart=on-abort
然后你就发现可以用systemctl status opentsdb了,不过现在服务还是dead状态
注意一下,默认opentsdb配置文件目录:/etc/opentsdb/opentsdb.conf,默认opentsdb日志目录:/var/log/opentsdb
修改/etc/opentsdb/opentsdb.conf配置文件
tsd.network.port = 4242
tsd.http.staticroot = /usr/share/opentsdb/static/
tsd.http.cachedir = /tmp/opentsdb
tsd.core.auto_create_metrics = true
tsd.core.plugin_path = /usr/share/opentsdb/plugins
zookeeper的地址,即hbase依赖的zookeeper的地址,192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181
tsd.storage.hbase.zk_quorum = localhost:2181
tsd.storage.fix_duplicates = true
tsd.http.request.enable_chunked = true
tsd.http.request.max_chunk = 4096000
tsd.storage.max_tags = 16
这里看到了我们上面在hbase中创建的4张表
tsd.storage.hbase.data_table = tsdb
tsd.storage.hbase.uid_table = tsdb-uid
tsd.storage.hbase.tree_table = tsdb-tree
tsd.storage.hbase.meta_table = tsdb-meta
下面几个配置项到部分源码解析的时候会有介绍,暂时可以先忽略
tsd.storage.enable_appends = true
tsd.query.skip_unresolved_tagvs = true
hbase.rpc.timeout = 120000
启动opentsdb,systemctl start opentsdb,成功的话,就可以打开opentsdb的界面了http://localhost:4242/
至此,有关opentsdb的安装部署就完成了。后面我会结合opentsdb部分源码分享一些探究性问题。祝君好运!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用 minikube 快速上手 Kubernetes | v1.7.3
minikube 踩坑和填坑。 环境说明 宿主机的环境 操作系统:Windows 10 虚拟化:VirtualBox 6.0 说明:在 Win 10 系统里尝试过 Hyper-V,感觉不好用,所以还是回归到了 VirtualBox。如果你用的是 Hyper-V,或者是 MacOS/Linux 操作系统,中间部分流程应该也可以参考。 如果有疑问可以查看 官方文档。 版本 Minikube:1.7.3 Kubernetes:1.17.3 说明:目前(2020-03-15)minikube 最新的版本是 1.8.2。我前几天尝试的版本是 1.8.1,踩到了其中的大 bug。 从 1.8.0 版本开始,它在部署的时候需要下载一个 Preload tarball images 的镜像文件,大小有 500 MB。 这个文件安装过程中是先下载到 .minikube\cache\preloaded-tarball 目录中,并且支持断点续传。但是,当我把从其它地方下载完全的文件放到该目录中时,并没有效果。也就是说缓存实际上没用。 最新的 1.8.2 似乎修复了这个 bug。 Minikube 最新的 1...
- 下一篇
【开发】IDEA这款插件太实用了…
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,几乎是每个开发的日常工作项。 所谓工欲善其事必先利其器,在没有尝到IDEA REST真香之前,postman确实是一个非常不错的选择,具有完备的REST Client功能和请求历史记录功能。 但是当使用了IDEA REST之后,postman就可以丢了,因为,IDEA REST Client具有postman的所有功能,而且还有postman没有的功能,继续往下看。 真香定律的原因有如下几个: 1、首先postman的所有功能IDEA REST Client都具备了,如REST Client控制台和历史请求记录。 2、其次如果能够在一个生产工具里完成开发和调试的事情,干嘛要切换到另一个工具呢?在公众号互联网架构师后台回复:2T,可以获取架构师视频整套系统教程。 3、然后IDEA REST Client还支持环境配置区分的功能,以及接口响应断言和脚本化处理的能力。 4、ID...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库