OpenTSDB源码编译踩坑笔记
OpenTSDB官网教程
先来个官网截图,如下:
再贴个官网链接:http://opentsdb.net/docs/build/html/installation.html#runtime-requirements (看我的教程就行了,这个需要的时候再过去看)
由上图可知,安装OpenTSDB需要以下四个环境:
- 一个linux系统
- java 运行时环境
- hbase
- GnuPlot
并且对每个环境都做了要求。由于官网文档长时间不更新,可能再配置的过程当中会遇到不兼容的情况,比如hbase1.4.9+opentsdb2.3.2可能就会出现兼容,虽然官网要求hbase0.92以后就行,但还是不兼容,所以很可能是文档没及时更新的。所以待会我会讲解我配置成功所需的四种环境。
我编译成功的环境
- CentOS 7.6
- jdk 1.8
- hbase 2.1.4
此次HBase装的是单机版的,从清华镜像网站下的压缩包。解压缩以后,进行简单的配置就行了。以下是hbase-site.xml的配置,这两个路径都是自己指定的,最好自己能找到。
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
</property>
是配置浏览器端口的。默认是16010。
以下是hbase-env.sh的配置。新增自己的jdk环境就行了。
4. gnuplot 4.6
5. java的环境变量和hbase的环境变量都在/etc/profile文件中配置了。如下图所示。
下载OpenTSDB的2.3.1源码
下载有两种方式:
- 通过命令
git clone -b v2.3.1 https://github.com/OpenTSDB/opentsdb.git
下载指定tags的代码。其中v2.3.1必须是存在的tags或branchs。如下所示,v2.3.1存在于该项目的tags中。
- 去github上的opentsdb项目的releases界面下载opentsdb-2.3.1.tar.gz压缩包。如下图所示。
开始编译OpenTSDB2.3.1源码
-
将opentsdb项目克隆或者将压缩文件解压缩至/usr/local目录下,命令为opentsdb文件夹。本教程用的是第一种方法。
-
到opentsdb文件夹下。执行
./build.sh
文件,会在当前文件夹下新建一个build文件夹,并下载第三方jar包至build文件夹下的third_party文件夹下。可能会碰到被墙或者其他情况,导致build失败。庆幸的是,在opentsdb下面有一个third_party文件夹,里面有这个版本对应的jar包,所以直接将该文件夹拷贝至build文件夹下面即可。再次执行build.sh
即可。注意
:我后来在Ubuntu
下面也尝试了一下,并且HBase版本换成了hbase-2.0.3
,OpenTSDB版本换成了opentsdb-2.3.2
(用第二种方法下载的)。除了下载不了jar包以外,还会报如下错误。WARNING: 'automake-1.14' is missing on your system. You should only need it if you modified 'Makefile.am' or 'configure.ac' or m4 files included by 'configure.ac'....
但是检查发现其实已经安装了automake,只不过版本是automake-1.15.1。具体如何解决请参考此链接:https://blog.youkuaiyun.com/rainforest_c/article/details/82724554
解决后,重复后面的操作,同样能访问4242界面。如下图所示。
-
修改配置文件
opentsdb.conf
。配置文件在opentsdb/src/opentsdb.conf
。主要修改以下几点:
tsd.network.port: 指定TSD的通信端口。设置为4242。源码编译过来的没有默认值。
tsd.http.cachedir :指定临时缓存文件的存储位置。源码编译的没有默认值。
tsd.http.staticroot: 配置在opentsdb/build/staticroot文件夹下面的GUI静态文件路径。源码编译的没有默认值。
tsd.storage.hbase.zk_quorum:如果HBase和Zookeeper跟OpenTSDB不在同一个主机上,那就需要指定主机地址和端口号。默认是localhost
tsd.core.auto_create_metrics :是否开启自动为新的metric创建UID,默认是不开启,此处我们需要开启。
-
将
opentsdb.conf
文件拷贝至opentsdb/build/
文件夹下。这样执行./tsdb tsd
才会读取到配置文件。否则就需要在命令行中指定一些基本参数。比如port、staticroot、zk_quorum等。
-
执行
env COMPRESSION=NONE HBASE_HOME=/usr/local/hbase-2.1.4 /usr/local/opentsdb/src/create_table.sh
在hbase中创建相关的元数据的表。包含tsdb-uid
、tsdb
、tsdb-tree
、tsdb-meta
。 -
进入
build
文件夹,执行./tsdb tsd
即可。启动TSD之前,需要确认HBase已经开启,才能执行这一步。
-
在浏览器输入localhost:4242,出现如下界面。
如果能出现这个界面,就说明此次单机版的OpenTSDB编译启动成功。