The following steps describe how to install OpenTSDB from a package.
About this task
Be sure to install the OpenTSDB version that is required for your AsyncHBase version.
AsyncHBase 1.6 requires OpenTSDB 2.0. AsyncHBase 1.7 requires OpenTSDB 2.2.
Procedure
-
Install the OpenTSDB RPM:
-
mkdir /root/opentsdbrpm
-
cd /root/opentsdbrpm
-
Download the version of OpenTSDB that you required.
For OpenTSDB 2.0:
wget
https://github.com/OpenTSDB/opentsdb/releases/download/v2.0.0/opentsdb-2.0.0.noarch.rpm
-O opentsdb-2.0.0.noarch.rpm
For OpenTSDB 2.2: wget
https://github.com/OpenTSDB/opentsdb/releases/download/v2.2.0/opentsdb-2.2.0.noarch.rpm-o
opentsdb-2.2.0.noarch.rpm
-
rpm -ivh opentsdb-<version>.noarch.rpm
-
Configure OpenTSDB to work with Data Fabric:
-
Edit the following
tsdb
scripts to cover Data Fabric-specific dependencies:
/usr/share/opentsdb/bin/tsdb
and
/usr/bin/tsdb
# Base of Data Fabric installation
BASEMAPR=${MAPR_HOME:-/opt/mapr}
# Add Data Fabric hadoop jars to classpath
if test -d "$BASEMAPR/hadoop/hadoop-0.20.2/lib"; then
# hadoop conf directory to beginning of classpath (for core-site.xml)
CLASSPATH="$BASEMAPR/hadoop/hadoop-0.20.2/conf:$CLASSPATH"
for jar in "$BASEMAPR"/hadoop/hadoop-0.20.2/lib/*.jar; do
if [ "`echo $jar | grep slf4j`" != "" ]; then
continue
fi
CLASSPATH="$CLASSPATH:$jar"
done
fi
-
Replace the asynchbase jar file (provide the current jar file name in the
cp
command):
cp
/opt/mapr/asynchbase/asynchbase-<version>/asynchbase-<version>-mapr-*.jar
/usr/share/opentsdb/lib/
rm -f /usr/share/opentsdb/lib/asynchbase-<previous_version>.jar
-
Configure the
opentsdb.conf
files: These files must have
the following settings:
/usr/share/opentsdb/etc/opentsdb/opentsdb.conf
/etc/opentsdb/opentsdb.conf
tsd.network.port = 4242
tsd.http.staticroot = /usr/share/opentsdb/static/
tsd.core.auto_create_metrics = false (for testing purposes only)
tsd.storage.hbase.data_table = /tsdb
tsd.storage.hbase.uid_table = /tsdb-uid
tsd.storage.hbase.zk_quorum = <zookeeperNode>:<zookeeperP>
-
Edit the
<OPENTSDB_ROOT_INSTALL_DIR>/src/create_table.sh
file and add "/" before the table names so that Data Fabric recognizes them as HPE Ezmeral Data Fabric Database tables. Then, create tables in HPE Ezmeral Data Fabric Database: .
export COMPRESSION=NONE; export HBASE_HOME=/opt/mapr/hbase/hbase-<version>; /usr/share/opentsdb/tools/create_table.sh
See
Example: create_table.sh
-
Confirm that the tables are created:
hadoop fs -ls /
tr-------- 3 root root 2 2014-12-12 01:47 /tsdb
tr-------- 3 root root 2 2014-12-12 01:47 /tsdb-meta
tr-------- 3 root root 2 2014-12-12 01:47 /tsdb-tree
tr-------- 3 root root 2 2014-12-12 01:47 /tsdb-uid
-
Start the
tsd
daemon. You can give
executable permissions to the tsdb script
in /usr/share/opentsdb/bin
, or you can directly
use tsdb
(because of the dependencies you added
earlier).
chmod +x /usr/share/opentsdb/bin/tsdb
/usr/share/opentsdb/bin/tsdb tsd --port=4242
--staticroot="/usr/share/opentsdb/static/"
--cachedir="/tmp/opentsdb" --auto-metric
-
Create a metric:
/usr/share/opentsdb/bin/tsdb mkmetric
mymetric.stock
-
Test the metric:
-
Run a Test Program for OpenTSDB that reads from the tmp_input file and sends put requests to opentsdb, which saves the data to a HPE Ezmeral Data Fabric Database
table (tsdb/tsdb-uid).
-
Run aggregation queries (such as SUM) from the command line:
/usr/share/opentsdb/bin/tsdb query 1y-ago sum
mymetric.stock
or tsdb query 1y-ago sum
mymetric.stock
-
When you run the SUM command, the results should look like the following:
====
mymetric.stock 1407165399000 680.500015 {}
mymetric.stock 1407165401000 904.625000 {}
mymetric.stock 1407165402000 904.612495 {}
mymetric.stock 1407165403000 904.599991 {}
mymetric.stock 1407165404000 904.599991 {}
mymetric.stock 1407165405000 904.599991 {}
mymetric.stock 1407165406000 904.599991 {}
mymetric.stock 1407165407000 904.599991 {}
mymetric.stock 1407165408000 904.599991 {}
mymetric.stock 1407165409000 904.599991 {}
mymetric.stock 1407165410000 904.599991 {}
mymetric.stock 1407165411000 904.599991 {}
mymetric.stock 1407165412000 904.599991 {}
mymetric.stock 1407165413000 904.599991 {}
mymetric.stock 1407165414000 904.599991 {}
mymetric.stock 1407165415000 904.599991 {}
mymetric.stock 1407165416000 904.599991 {}
mymetric.stock 1407165417000 904.599991 {}
mymetric.stock 1407165418000 904.599991 {}
mymetric.stock 1407165419000 904.599991 {}
mymetric.stock 1407165422000 904.678749 {}
mymetric.stock 1407165423000 484.255005 {}
====