Couldn't run Druid with RabbitMQ firehose

I’m new to Druid and I’m trying to run it with RabbitMQ firehose. However, I can’t seem to figure out how to add the dependency.

I use this command to start the cluster.

java -Xmx512m -Duser.timezone=UTC -Dfile.encoding=UTF-8
-Ddruid.realtime.specFile=examples/spec.spec
-Ddruid.extensions.remoteRepositories=[“https://repo1.maven.org/maven2”]
-classpath “config/_common:config/realtime:lib/*” io.druid.cli.Main server realtime

``

And I get this error

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Could not resolve type id ‘rabbitmq’ into a subtype of [simple type, class io.druid.data.input.FirehoseFactory]
at [Source: examples/spec.spec; line: 66, column: 14] (through reference chain: java.util.ArrayList[0])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
at com.fasterxml.jackson.databind.DeserializationContext.unknownTypeException(DeserializationContext.java:862)
at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:167)
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:99)
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:84)
at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:132)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:536)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:344)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1064)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:264)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:156)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:126)
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:113)
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:84)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithType(BeanDeserializerBase.java:956)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:536)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:344)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1064)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:264)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:124)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:232)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:206)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:25)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3066)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2122)
at io.druid.guice.FireDepartmentsProvider.(FireDepartmentsProvider.java:43)

``

I tried running
tools pull-deps

``

But it didn’t help. Not sure how do I tell Druid to download the necessary jars to be able to run RabbitMQ firehose?

I’m using druid-0.8.2. I also tried copying amqp-client-3.2.1.jar to lib folder I got the same error

the rabbitmq module needs to be loaded. Take a look at the line at https://github.com/druid-io/druid/blob/druid-0.8.2/examples/config/_common/common.runtime.properties#L20 and be sure you have the rabbitmq module io.druid.extensions:druid-rabbitmq in that list

By the way, you’ll probably want to specify those druid.XXX properties in either the common.runtime.properties or the runtime.properties file

PLEASE NOTE that module loading is changing dramatically in 0.9.x which will probably be coming out early next year.

That did the trick! Thanks very much.