源码准备
lynn@lynn-ubuntu:/codes/github$ git clone https://github.com/OpenTSDB/opentsdb.gitCloning into ‘opentsdb‘...remote: Enumerating objects: 306, done.remote: Counting objects: 100% (306/306), done.remote: Compressing objects: 100% (122/122), done.remote: Total 33302 (delta 92), reused 273 (delta 86), pack-reused 32996Receiving objects: 100% (33302/33302), 36.25 MiB | 65.00 KiB/s, done.Resolving deltas: 100% (18824/18824), done.
查看远程Tags列表:
lynn@lynn-ubuntu:/codes/github/opentsdb$ git tag...v2.3.2v2.4.0v2.4.0RC2
检出分支:
lynn@lynn-ubuntu:/codes/github/opentsdb$ git checkout -b v2.4.0Switched to a new branch ‘v2.4.0‘lynn@lynn-ubuntu:/codes/github/opentsdb$ git branch master* v2.4.0
构建pom.xml配置文件:
lynn@lynn-ubuntu:/codes/github/opentsdb$ sh build.sh pom.xml+ test -f configure+ ./bootstrapautoreconf: Entering directory `.‘autoreconf: configure.ac: not using Gettextautoreconf: running: aclocal --force -I build-auxautoreconf: configure.ac: tracingautoreconf: configure.ac: not using Libtoolautoreconf: running: /usr/bin/autoconf --forceautoreconf: configure.ac: not using Autoheaderautoreconf: running: automake --add-missing --copy --force-missingconfigure.ac:19: installing ‘build-aux/install-sh‘configure.ac:19: installing ‘build-aux/missing‘Makefile.am:921: warning: whitespace following trailing backslashthird_party/validation-api/include.mk:24: warning: variable ‘VALIDATION_API_SOURCES‘ is defined but no program orthird_party/validation-api/include.mk:24: library has ‘VALIDATION_API‘ as canonical name (possible typo)Makefile.am:983: ‘third_party/include.mk‘ included from herethird_party/include.mk:38: ‘third_party/validation-api/include.mk‘ included from hereautoreconf: Leaving directory `.‘+ test -d build+ mkdir build+ cd build+ test -f Makefile+ ../configure pom.xmlconfigure: WARNING: you should use --build, --host, --targetchecking for a BSD-compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking for a thread-safe mkdir -p... /bin/mkdir -pchecking for gawk... nochecking for mawk... mawkchecking whether make sets $(MAKE)... yeschecking whether make supports nested variables... yeschecking for md5sum... /usr/bin/md5sumchecking for java... /usr/lib/jdk1.8.0_172/bin/javachecking for javac... /usr/lib/jdk1.8.0_172/bin/javacchecking for jar... /usr/lib/jdk1.8.0_172/bin/jarchecking for true... /bin/truechecking for javadoc... /usr/lib/jdk1.8.0_172/bin/javadocchecking for wget... /usr/bin/wgetchecking for curl... /opt/anaconda2/bin/curlchecking that generated files are newer than configure... doneconfigure: creating ./config.statusconfig.status: creating Makefileconfig.status: creating opentsdb.specconfig.status: creating build-aux/fetchdep.sh+ MAKE=make+ uname -s+ [ Linux = FreeBSD ]+ exec make pom.xml(cd .. ; ./build-aux/create-src-dir-overlay.sh){ echo ‘<!-- Generated by Makefile on ‘`date`‘ -->‘; sed <../pom.xml.in -e ‘s/@ASYNCHBASE_VERSION@/1.8.2/‘ -e ‘s/@ASYNCBIGTABLE_VERSION@/0.0/‘ -e ‘s/@ASYNCCASSANDRA_VERSION@/0.0/‘ -e ‘s/@GUAVA_VERSION@/18.0/‘ -e ‘s/@GWT_VERSION@/2.6.0/‘ -e ‘s/@GWT_THEME_VERSION@/1.0.0/‘ -e ‘s/@HAMCREST_VERSION@/1.3/‘ -e ‘s/@JACKSON_VERSION@/2.9.5/‘ -e ‘s/@JAVASSIST_VERSION@/3.21.0-GA/‘ -e ‘s/@JUNIT_VERSION@/4.11/‘ -e ‘s/@LOG4J_OVER_SLF4J_VERSION@/1.7.7/‘ -e ‘s/@LOGBACK_CLASSIC_VERSION@/1.0.13/‘ -e ‘s/@LOGBACK_CORE_VERSION@/1.0.13/‘ -e ‘s/@MOCKITO_VERSION@/1.9.5/‘ -e ‘s/@NETTY_VERSION@/3.10.6.Final/‘ -e ‘s/@OBJENESIS_VERSION@/1.3/‘ -e ‘s/@POWERMOCK_MOCKITO_VERSION@/1.5.4/‘ -e ‘s/@SLF4J_API_VERSION@/1.7.7/‘ -e ‘s/@SUASYNC_VERSION@/1.4.0/‘ -e ‘s/@ZOOKEEPER_VERSION@/3.4.6/‘ -e ‘s/@APACHE_MATH_VERSION@/3.4.1/‘ -e ‘s/@JEXL_VERSION@/2.1.1/‘ -e ‘s/@JGRAPHT_VERSION@/0.9.1/‘ -e ‘s/@spec_title@/OpenTSDB/‘ -e ‘s/@spec_vendor@/The OpenTSDB Authors/‘ -e ‘s/@spec_version@/2.4.0/‘ -e ‘s/@maven_profile_hbase@/true/‘ -e ‘s/@maven_profile_bigtable@/false/‘ -e ‘s/@maven_profile_cassandrae@/false/‘ ; } >pom.xml-tmv pom.xml-t ../pom.xml
编译打包:
mvn clean package -Phbase
1. 由于本地只有jdk1.8, 因此修改pom.xml文件jdk版本
pom.xml
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgument>-Xlint</compilerArgument> <excludes> <exclude>**/client/*.java</exclude> </excludes> <testExcludes> <exclude>**/TestGraphHandler.java</exclude> </testExcludes> </configuration> </plugin>
Error:(36, 10) java: duplicate class: tsd.client.EventsHandler
因此将src-main/tsd目录置为Excluded状态。
3. 运行主程序:
src-main/net/opentsdb/tools/OpenTSDBMain
lynn:lynnlynn:lynn-metalynn:lynn-treelynn:lynn-uid
tsd --zkquorum manager.bigdata.com:2181 --zkbasedir /hbase-unsecure --uidtable lynn:lynn-uid --table lynn:lynn --metatable lynn:lynn-meta --treetable lynn:lynn-tree