storm-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zac <caz...@live.com>
Subject Storm 2.0 Guava Issue
Date Thu, 17 Oct 2019 12:54:53 GMT
Hi all,


I am having an issue with deploying a topology in Storm 2.0.0. The issue involves Guava. I
was building a Storm fat jar with Guava 18.0 and began getting this error when I submitted
my topology:



INFO  c.d.d.c.GuavaCompatibility - Detected Guava < 19 in the classpath, using legacy compatibility
layer

INFO  c.d.d.c.Native - Could not load JNR C Library, native system calls through this library
will not be available.

INFO  c.d.d.c.ClockFactory - Using java.lang.System clock to generate timestamps.

ERROR MyClassName – my logged error:

java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;

\tat com.datastax.driver.core.GuavaCompatibility$Version18OrLower.sameThreadExecutor(GuavaCompatibility.java:185)



I upgraded Guava to 19.0 and made sure to exclude all versions of Guava that were not 19.0
and started getting this error (it’s the same error):



INFO  c.d.d.c.GuavaCompatibility - Detected Guava < 19 in the classpath, using legacy compatibility
layer

INFO  c.d.d.c.Native - Could not load JNR C Library, native system calls through this library
will not be.\

INFO  c.d.d.c.ClockFactory - Using java.lang.System clock to generate timestamps.

ERROR MyClassName – my logged error:

java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;\n\tat
com.datastax.driver.core.GuavaCompatibility$Version18OrLower.sameThreadExecutor(GuavaCompatibility.java:185)



I was very confused by this as I did not have any jars of Guava < 19.0 included at all
(I checked very thoroughly). Lastly, I tried removing all Guava inclusions and I got the following
error:



INFO  c.d.d.c.GuavaCompatibility - Detected Guava < 19 in the classpath, using legacy compatibility
layer

ERROR MyClassName – my logged error:

java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureFallback

\tat com.datastax.driver.core.GuavaCompatibility.selectImplementation(GuavaCompatibility.java:136)



I am very confused as to how this is detecting a version of Guava when there are none included
in the jar. When submitting a topology to storm, does it add in dependency or package in libs?
I need to use Guava 19.0 as one of my dependencies relies on it. How can I make sure that
19.0 is the only version being used and that Storm 2.0 does not add any versions of Guava?



Thanks


Mime
View raw message