Opentsdb调试
生成pom.xml文件
Github上clone源码.
1 | # 项目路径下,生成pom.xml |
生成pom.xml文件后,有提示报错,需要修改若干位置.
ph-javacc-maven-plugin参数javadocFriendlyComments报错,可修改ph-javacc-maven-plugin版本为2.8.2、3.0.0等尝试
profile: bigtable不生效,需要修改bigtable的配置,也可以删除
1 | <profile> |
profile: cassandra不生效,需要修改cassandra的配置,也可以删除
1 | <profile> |
其中asynccassandra在中央仓库没有发布,需要自己去下载项目打包生成. 另外asynccassandra项目打包时要关闭doclint,否则会报错,pom.xml修改如下部分.
1 | <plugin> |
打包命令
1 | $ mvn install |
修改maven-surefire-plugin参数设置,减少高版本JVM报警
1 | <argLine>-Xmx2048m -XX:MaxPermSize=256m</argLine> |
修改maven-javadoc-plugin参数设置,防止javadoc编译报错
1 | <plugin> |
打包时跳过gpg过程
1 | <plugin> |
调试启动
以上6步操作完成后,mvn package查看build是否通过。遇到问题按照如下方案解决
首先通过 mvn compile 编译项目
发现package tsd.client中有些duplicate classes,包名为tsd.client,所以net.opentsdb.tsd.client应当去掉.
解决:在ide中将src-main/net/opentsdb/tsd/client从项目中exclude
net.opentsdb.tools.TSDMain启动配置文件,是从项目根目录中读取配置文件
解决:将opentsdb.conf复制到根目录下(也可以在TSDMain的运行参数中通过–config=absolute-path-to-opentsdb-conf-file来指定配置文件位置),并修改配置
1 | tsd.network.port = 4242 |
mygnuplot.sh缺失
mvn compile后是会产生mygnuplot.sh文件的.
解决:在项目根目录下创建src-main-resources文件夹,将mygnuplot.sh放入src-main-resources目录下.
Hbase启动
Hbase建议使用docker镜像
1 | $ docker run -d -it --net=host --privileged -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9095:9095 -p 16000:16000 -p 16010:16010 -p 16201:16201 -p 16301:16301 harisekhon/hbase |
Hbase缺失表,使用src-main/create_table.sh去Hbase环境下创建表
1 | Error:Caused by: com.stumbleupon.async.DeferredGroupException: At least one of the Deferreds failed, first exception: org.hbase.async.TableNotFoundException: "tsdb-uid" |
解决方案:
1 | # 可以单独用export设定这两个环境变量,COMPRESSION不关闭,会报错压缩错误 |
TSDMain运行调试
访问localhost:4242,向opentsdb添加若干数据,若tsdb监控页不能显示图,需要安装gnuplot
1 | # Mac下可直接安装 |