OpenTSDB v2.4.0 Intellij IDEA开发环境搭建

发布时间:2020-06-22 10:19:51 作者:Lynn_Yuan
来源:网络 阅读:1541

源码准备

1.下载源代码

lynn@lynn-ubuntu:/codes/github$ git clone https://github.com/OpenTSDB/opentsdb.git
Cloning 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 32996
Receiving objects: 100% (33302/33302), 36.25 MiB | 65.00 KiB/s, done.
Resolving deltas: 100% (18824/18824), done.

2. 创建分支v2.4.0

查看远程Tags列表:

lynn@lynn-ubuntu:/codes/github/opentsdb$ git tag
...
v2.3.2
v2.4.0
v2.4.0RC2

检出分支:

lynn@lynn-ubuntu:/codes/github/opentsdb$ git checkout -b v2.4.0
Switched 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
+ ./bootstrap
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I build-aux
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
autoreconf: configure.ac: not using Autoheader
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:19: installing 'build-aux/install-sh'
configure.ac:19: installing 'build-aux/missing'
Makefile.am:921: warning: whitespace following trailing backslash
third_party/validation-api/include.mk:24: warning: variable 'VALIDATION_API_SOURCES' is defined but no program or
third_party/validation-api/include.mk:24: library has 'VALIDATION_API' as canonical name (possible typo)
Makefile.am:983:   'third_party/include.mk' included from here
third_party/include.mk:38:   'third_party/validation-api/include.mk' included from here
autoreconf: Leaving directory `.'
+ test -d build
+ mkdir build
+ cd build
+ test -f Makefile
+ ../configure pom.xml
configure: WARNING: you should use --build, --host, --target
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for md5sum... /usr/bin/md5sum
checking for java... /usr/lib/jdk1.8.0_172/bin/java
checking for javac... /usr/lib/jdk1.8.0_172/bin/javac
checking for jar... /usr/lib/jdk1.8.0_172/bin/jar
checking for true... /bin/true
checking for javadoc... /usr/lib/jdk1.8.0_172/bin/javadoc
checking for wget... /usr/bin/wget
checking for curl... /opt/anaconda2/bin/curl
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating opentsdb.spec
config.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-t
mv pom.xml-t ../pom.xml

编译打包:

mvn clean package -Phbase

导入Intellij IDEA

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>
  1. 代码冗余报错:
    Error:(36, 10) java: duplicate class: tsd.client.EventsHandler

    因此将src-main/tsd目录置为Excluded状态。
    3. 运行主程序:

    src-main/net/opentsdb/tools/OpenTSDBMain

    src-main/net/opentsdb/tools/TSDMain
  2. 将fat-jar目录置为ResourcesRoot加入Classpath下
  3. 在HBase中创建相关表格
    lynn:lynn
    lynn:lynn-meta
    lynn:lynn-tree
    lynn:lynn-uid
  4. 增加如下运行参数:
    OpenTSDBMain
    tsd --zkquorum manager.bigdata.com:2181 --zkbasedir /hbase-unsecure --uidtable lynn:lynn-uid --table lynn:lynn --metatable lynn:lynn-meta --treetable lynn:lynn-tree

    TSDMain

    --config=/opt/opentsdb-2.4.0/etc/opentsdb/opentsdb.conf

opentsdb.conf

# --------- NETWORK ----------
# The TCP port TSD should use for communications
# *** REQUIRED ***
tsd.network.port = 4242

# The IPv4 network address to bind to, defaults to all addresses
# tsd.network.bind = 0.0.0.0

# Disable Nagel's algorithm, default is True
#tsd.network.tcp_no_delay = true

# Determines whether or not to send keepalive packets to peers, default
# is True
#tsd.network.keep_alive = true

# Determines if the same socket should be used for new connections, default
# is True
#tsd.network.reuse_address = true

# Number of worker threads dedicated to Netty, defaults to # of CPUs * 2
#tsd.network.worker_threads = 8

# Whether or not to use NIO or tradditional blocking IO, defaults to True
#tsd.network.async_io = true

# ----------- HTTP -----------
# The location of static files for the HTTP GUI interface.
# *** REQUIRED ***
tsd.http.staticroot = /opt/opentsdb-2.4.0/static/

# Where TSD should write it's cache files to
# *** REQUIRED ***
tsd.http.cachedir = /tmp/opentsdb

# --------- CORE ----------
# Whether or not to automatically create UIDs for new metric types, default
# is False
tsd.core.auto_create_metrics = true

# --------- STORAGE ----------
# Whether or not to enable data compaction in HBase, default is True
#tsd.storage.enable_compaction = true
#Whether or not to append data to columns when writing data points instead of creating new columns for each value. Avoids the need for compactions after each hour but can use more resources on HBase.
#tsd.storage.enable_appends  = false
# How often, in milliseconds, to flush the data point queue to storage,
# default is 1,000
# tsd.storage.flush_interval = 1000

# Name of the HBase table where data points are stored, default is "tsdb"
tsd.storage.hbase.data_table = lynn:lynn

# Name of the HBase table where UID information is stored, default is "tsdb-uid"
tsd.storage.hbase.uid_table = lynn:lynn-uid

tsd.storage.hbase.meta_table = lynn:lynn-meta

tsd.storage.hbase.tree_table = lynn:lynn-tree

# Path under which the znode for the -ROOT- region is located, default is "/hbase"
tsd.storage.hbase.zk_basedir = /hbase-unsecure

# A comma separated list of Zookeeper hosts to connect to, with or without
# port specifiers, default is "localhost"
tsd.storage.hbase.zk_quorum = manager.bigdata.com:2181
推荐阅读:
  1. Trunk、Trunk、Trunk(外加拓宽的以太网通道建立方法)
  2. 静态路由原理与配置——理论篇

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

opentsdb idea 开发环境

上一篇:度量快速开发平台:如何实现字段别名效果

下一篇:K8S kubelet logs报错

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》