opentsdb在上一家公司就搞过一段时间,最近又有些时序数据需要分析处理,正好公司也在做这方面的东西,模仿opentsdb,开发了一个hitsdb,卧槽。
好吧,先来记录一下,这个东西怎么安装。
首先,看下这个东西的api跟公司的hbase是否兼容,公司都是0.94版本演进过来的,opentsdb的安装要求如下:
To actually run OpenTSDB, you'll need to meet the following:
所以应该能兼容。hbase已经部署好了,这个不多提了。
opentsdb提供了编译好的下载地址,https://github.com/OpenTSDB/opentsdb/releases,但是那些tar包好像在亚马逊的云上,国内下载挺费劲,那么我们可以选择源码编译安装。
你可以git clone github上面的版本,也可以下载他们提供的源码链接https://github.com/OpenTSDB/opentsdb/archive/v2.2.0.zip,这里使用2.2.0版本,opentsdb的版本更新并不是很快,基本上跟上家公司用的版本差不多。
编译的话,按照官网文档走就可以了,opentsdb没有使用maven 管理依赖,而是使用makefile,好传统! 找个能连外网的机器,注意jdk版本,这里用的是1.7的。然后直接执行build.sh就行了,它会下载依赖jar包到thirdparty目录,然后会自动将这些jar包放进classpath,然后执行编译等。
网络流畅的话,还是很快的,我用的命令是build.sh dist 这样会在build目录将部署tar包给你打好,你只需要拷贝走,拿到任意机器上再编译一下就行了,注意还需要编译一下,并不能直接运行哦,只不过不需要下载依赖了。
到你要部署的机器上,执行build.sh,当然jdk也要ready,然后还需要配置opentsdb-2.2.0/build/tsdb这个文件,有两项:
abs_srcdir='/home/hadoop/opentsdb-2.2.0/'
abs_builddir='build'
这俩不填执行不了的,并且上面那俩一前一后,组合成一个绝对路径,tsd运行时需要到这俩地方去搜索thirdparty的依赖,所以必填。
test -d "$pkgdatadir" || test -n "$abs_srcdir$abs_builddir" || {
echo >&2 "$me: Uh-oh, \`$pkgdatadir' doesn't exist, is OpenTSDB properly installed?"
exit 1
}
另外,opentsdb-2.2.0/src/opentsdb.conf 也要填一下,比较简单,不说了,默认是扫面
file_locations.add("/etc/opentsdb.conf"); | |
file_locations.add("/etc/opentsdb/opentsdb.conf"); | |
file_locations.add("/opt/opentsdb/opentsdb.conf"); |
还有就是src下有个logback.xml,需要配置一下日志目录,默认在/var/log下,这个目录你不一定有权限,而且应用日志打到这个目录也不合理,很容易打爆。