Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tranquility fails with latest druid-histogram plugin #235

Open
cstewart-aol opened this issue Jun 20, 2017 · 2 comments
Open

Tranquility fails with latest druid-histogram plugin #235

cstewart-aol opened this issue Jun 20, 2017 · 2 comments

Comments

@cstewart-aol
Copy link

cstewart-aol commented Jun 20, 2017

I'm trying to upgrade Druid from 0.9.0 to 0.10.0, and I'm running Tranquility 0.8.2 with Kafka alongside it. We use the druid-histogram plugin in Tranquility to do some percentile calculations on our realtime data. When I did the upgrade Druid started up fine, but Tranquility threw an error and stopped when I sent a payload to it through Kafka. Here's the stack trace I received:

[KafkaConsumer-1] ERROR c.m.tranquility.kafka.KafkaConsumer - Exception:
java.lang.NoClassDefFoundError: io/druid/sql/calcite/aggregation/SqlAggregator
at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_131]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_131]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_131]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_131]
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_131]
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_131]
at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_131]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_131]
at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]
at io.druid.query.aggregation.histogram.ApproximateHistogramDruidModule.configure(ApproximateHistogramDruidModule.java:64) ~[na:na]
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.spi.Elements.getElements(Elements.java:110) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.util.Modules$OverrideModule.configure(Modules.java:198) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.AbstractModule.configure(AbstractModule.java:62) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.spi.Elements.getElements(Elements.java:110) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.Guice.createInjector(Guice.java:96) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.Guice.createInjector(Guice.java:73) ~[com.google.inject.guice-4.0.jar:na]
at com.google.inject.Guice.createInjector(Guice.java:62) ~[com.google.inject.guice-4.0.jar:na]
at com.metamx.tranquility.druid.DruidGuicer.(DruidGuicer.scala:128) ~[io.druid.tranquility-core-0.8.2.jar:0.8.2]
at com.metamx.tranquility.druid.DruidGuicer$.(DruidGuicer.scala:138) ~[io.druid.tranquility-core-0.8.2.jar:0.8.2]
at com.metamx.tranquility.druid.DruidGuicer$.(DruidGuicer.scala) ~[io.druid.tranquility-core-0.8.2.jar:0.8.2]
at com.metamx.tranquility.druid.DruidBeams$.makeFireDepartment(DruidBeams.scala:433) ~[io.druid.tranquility-core-0.8.2.jar:0.8.2]
at com.metamx.tranquility.druid.DruidBeams$.fromConfigInternal(DruidBeams.scala:299) ~[io.druid.tranquility-core-0.8.2.jar:0.8.2]
at com.metamx.tranquility.druid.DruidBeams$.fromConfig(DruidBeams.scala:204) ~[io.druid.tranquility-core-0.8.2.jar:0.8.2]
at com.metamx.tranquility.kafka.KafkaBeamUtils$.createTranquilizer(KafkaBeamUtils.scala:40) ~[io.druid.tranquility-kafka-0.8.2.jar:0.8.2]
at com.metamx.tranquility.kafka.KafkaBeamUtils.createTranquilizer(KafkaBeamUtils.scala) ~[io.druid.tranquility-kafka-0.8.2.jar:0.8.2]
at com.metamx.tranquility.kafka.writer.TranquilityEventWriter.(TranquilityEventWriter.java:64) ~[io.druid.tranquility-kafka-0.8.2.jar:0.8.2]
at com.metamx.tranquility.kafka.writer.WriterController.createWriter(WriterController.java:171) ~[io.druid.tranquility-kafka-0.8.2.jar:0.8.2]
at com.metamx.tranquility.kafka.writer.WriterController.getWriter(WriterController.java:98) ~[io.druid.tranquility-kafka-0.8.2.jar:0.8.2]
at com.metamx.tranquility.kafka.KafkaConsumer$2.run(KafkaConsumer.java:231) ~[io.druid.tranquility-kafka-0.8.2.jar:0.8.2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
Caused by: java.lang.ClassNotFoundException: io.druid.sql.calcite.aggregation.SqlAggregator
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]
... 40 common frames omitted

My understanding is that these versions of Druid and Tranquility probably aren't meant to be compatible with each other, but these are the latest versions of the software. Is there a way I can fix this issue as it stands now?

@gianm
Copy link
Member

gianm commented Jun 30, 2017

Tranquility is lagging a bit behind Druid and is still built with Druid 0.9.2. So, at runtime, it wants the Druid 0.9.2 version of the histogram extension, which you can get here: http://static.druid.io/artifacts/releases/druid-0.9.2-bin.tar.gz

It should work fine with a Druid 0.10.x server.

@leventov
Copy link
Member

FYI #233

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants