Support Questions
Find answers, ask questions, and share your expertise
Announcements
Check out our newest addition to the community, the Cloudera Innovation Accelerator group hub.

OpenTSDB startup error -> Caused by: java.lang.NoSuchMethodError: org.jboss.netty.util.HashedWheelTimer.(Ljava/util/concurrent/ThreadFactory;Lorg/jboss/netty/util/ThreadNameDeterminer;JLjava/util/concurrent/TimeUnit;I)V

Expert Contributor

Hi - i've OpenTSDB v2.2.1 installed on HDP 2.4 , and i'm getting the following error on start up :

I've tried unistalling & re-installing OpenTSDB, but the error persists.

Any ideas ?

Command :-

[root@sandbox src]# /root/opentsdb-2.2.1/build/tsdb tsd --zkbasedir=/hbase-unsecure --port=9999 --zkquorum=sandbox.hortonworks.com:2181 --cachedir=/tmp/tsd --staticroot=/root/opentsdb-2.2.1/build/staticroot --auto-metric

Error :-

SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/hdp/2.4.0.0-169/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/root/opentsdb-2.2.1/third_party/logback/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 2017-01-03 22:34:06,736 INFO [main] tools.TSDMain (TSDMain.java:main(62)) - Starting. 2017-01-03 22:34:06,745 INFO [main] tools.TSDMain (TSDMain.java:main(63)) - net.opentsdb.tools 2.2.1-SNAPSHOT built at revision 3091079 (MINT) 2017-01-03 22:34:06,745 INFO [main] tools.TSDMain (TSDMain.java:main(64)) - Built on 2016/10/08 18:55:20 +0000 by hobbes@clhbase:/home/hobbes/opentsdb_OFFICIAL/build 2017-01-03 22:34:06,778 INFO [main] utils.Config (Config.java:loadConfig(583)) - Successfully loaded configuration file: opentsdb.conf 2017-01-03 22:34:06,870 INFO [main] async.Config (Config.java:loadConfig(367)) - Successfully loaded configuration file: opentsdb.conf Exception in thread "main" java.lang.RuntimeException: Initialization failed at net.opentsdb.tools.TSDMain.main(TSDMain.java:196) Caused by: java.lang.NoSuchMethodError: org.jboss.netty.util.HashedWheelTimer.<init>(Ljava/util/concurrent/ThreadFactory;Lorg/jboss/netty/util/ThreadNameDeterminer;JLjava/util/concurrent/TimeUnit;I)V at org.hbase.async.HBaseClient.newTimer(HBaseClient.java:627) at org.hbase.async.HBaseClient.defaultChannelFactory(HBaseClient.java:656) at org.hbase.async.HBaseClient.<init>(HBaseClient.java:557) at net.opentsdb.core.TSDB.<init>(TSDB.java:150) at net.opentsdb.core.TSDB.<init>(TSDB.java:220) at net.opentsdb.tools.TSDMain.main(TSDMain.java:150)

1 ACCEPTED SOLUTION

Expert Contributor

The issue is fixed, there was a conflict since the map-reduce component (which was also added to the classpath) has a different netty jar from the one used by OpenTSDB.

I've removed the map-reduce jars from the CLASSPATH to fix the issue.

View solution in original post

10 REPLIES 10

Super Collaborator

The above seems to indicate version mismatch of netty between OpenTSDB and HDP 2.4

Can you get the version of netty for OpenTSDB 2.2.1 ?

Thanks

Super Collaborator

Here is HDP 2.4's dependency:

[INFO] org.apache.hbase:hbase-it:jar:1.1.2

...

[INFO] +- org.jboss.netty:netty:jar:3.2.4.Final:compile

Expert Contributor

@Ted Yu -

Here is the netty version bundles with opentsdb ->

Any ideas ?

[root@sandbox opentsdb-2.2.1]# cd third_party/netty/ [root@sandbox netty]# ls -lrt total 1288 -rw-rw-r-- 1 1000 1000 33 2016-05-02 19:02 netty-3.9.4.Final.jar.md5 -rw-rw-r-- 1 1000 1000 1908 2016-05-02 19:02 include.mk -rw-rw-r-- 1 1000 1000 1310154 2016-10-08 18:55 netty-3.9.4.Final.jar

Super Collaborator

As you can see, there are two netty jars on the classpath with different version.

I am not aware of plan to support OpenTSDB.

See if you can build OpenTSDB with the netty version hbase uses.

Shading is another option but I am not expert there.

Expert Contributor

@Ted Yu - which two jars are you talking about ?

OpenTSDB only has Netty 3.2.4 jar.

Pls. confirm.

Super Collaborator

bq. OpenTSDB only has Netty 3.2.4 jar

But the list below showed netty-3.9.4.Final.jar

Expert Contributor

Maybe i'm missing the point here ..

what i meant was, The netty jars in OpenTSDB (v2.2.1) is

-> netty-3.9.4.Final.jar

is there a different version for Netty required ?

Expert Contributor

@Ted Yu - pls see my comments above.

Super Collaborator

bq. is there a different version for Netty required ?

As I said above, HDP 2.4 came with 3.2.4.Final which is different from 3.9.4.Final (opentsdb built with)

Expert Contributor

The issue is fixed, there was a conflict since the map-reduce component (which was also added to the classpath) has a different netty jar from the one used by OpenTSDB.

I've removed the map-reduce jars from the CLASSPATH to fix the issue.