Error in stream-enrich jackson databind


#1

Hi,

i am getting an error when i run stream-enrich (Kafka project)

Exception in thread "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.node.ObjectNode.<init>(Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;Ljava/util/Map;)V at com.maxmind.db.Decoder.decodeMap(Decoder.java:285) at com.maxmind.db.Decoder.decodeByType(Decoder.java:154) at com.maxmind.db.Decoder.decode(Decoder.java:147) at com.maxmind.db.Decoder.decodeMap(Decoder.java:281) at com.maxmind.db.Decoder.decodeByType(Decoder.java:154) at com.maxmind.db.Decoder.decode(Decoder.java:147) at com.maxmind.db.Decoder.decode(Decoder.java:87) at com.maxmind.db.Reader.<init>(Reader.java:132) at com.maxmind.db.Reader.<init>(Reader.java:116) at com.maxmind.geoip2.DatabaseReader.<init>(DatabaseReader.java:66) at com.maxmind.geoip2.DatabaseReader.<init>(DatabaseReader.java:54) at com.maxmind.geoip2.DatabaseReader$Builder.build(DatabaseReader.java:160) at com.snowplowanalytics.maxmind.iplookups.IpLookups$$anonfun$getService$1.apply(IpLookups.scala:111) at com.snowplowanalytics.maxmind.iplookups.IpLookups$$anonfun$getService$1.apply(IpLookups.scala:106) at scala.Option.map(Option.scala:146) at com.snowplowanalytics.maxmind.iplookups.IpLookups.getService(IpLookups.scala:106) at com.snowplowanalytics.maxmind.iplookups.IpLookups.<init>(IpLookups.scala:91) at com.snowplowanalytics.maxmind.iplookups.IpLookups$.apply(IpLookups.scala:46) at com.snowplowanalytics.snowplow.enrich.common.enrichments.registry.IpLookupsEnrichment.ipLookups$lzycompute(IpLookupsEnrichment.scala:167) at com.snowplowanalytics.snowplow.enrich.common.enrichments.registry.IpLookupsEnrichment.ipLookups(IpLookupsEnrichment.scala:165) at com.snowplowanalytics.snowplow.enrich.common.enrichments.registry.IpLookupsEnrichment.extractIpInformation(IpLookupsEnrichment.scala:178) at com.snowplowanalytics.snowplow.enrich.common.enrichments.EnrichmentManager$$anonfun$4$$anonfun$apply$2.apply(EnrichmentManager.scala:242) at com.snowplowanalytics.snowplow.enrich.common.enrichments.EnrichmentManager$$anonfun$4$$anonfun$apply$2.apply(EnrichmentManager.scala:240) at scala.Option.map(Option.scala:146) at com.snowplowanalytics.snowplow.enrich.common.enrichments.EnrichmentManager$$anonfun$4.apply(EnrichmentManager.scala:240) at com.snowplowanalytics.snowplow.enrich.common.enrichments.EnrichmentManager$$anonfun$4.apply(EnrichmentManager.scala:239) at scala.Option.flatMap(Option.scala:171) at com.snowplowanalytics.snowplow.enrich.common.enrichments.EnrichmentManager$.enrichEvent(EnrichmentManager.scala:239) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3.apply(EtlPipeline.scala:92) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3.apply(EtlPipeline.scala:91) at scalaz.NonEmptyList$class.map(NonEmptyList.scala:23) at scalaz.NonEmptyListFunctions$$anon$4.map(NonEmptyList.scala:207) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(EtlPipeline.scala:91) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(EtlPipeline.scala:88) at scalaz.Validation$class.map(Validation.scala:112) at scalaz.Success.map(Validation.scala:345) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1$$anonfun$apply$1.apply(EtlPipeline.scala:88) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1$$anonfun$apply$1.apply(EtlPipeline.scala:85) at scala.Option.map(Option.scala:146) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1.apply(EtlPipeline.scala:85) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$$anonfun$1.apply(EtlPipeline.scala:82) at scalaz.Validation$class.map(Validation.scala:112) at scalaz.Success.map(Validation.scala:345) at com.snowplowanalytics.snowplow.enrich.common.EtlPipeline$.processEvents(EtlPipeline.scala:82) at com.snowplowanalytics.snowplow.enrich.stream.sources.Source.enrichEvents(Source.scala:137) at com.snowplowanalytics.snowplow.enrich.stream.sources.Source$$anonfun$5.apply(Source.scala:162) at com.snowplowanalytics.snowplow.enrich.stream.sources.Source$$anonfun$5.apply(Source.scala:162) at scala.collection.immutable.List.flatMap(List.scala:338) at com.snowplowanalytics.snowplow.enrich.stream.sources.Source.enrichAndStoreEvents(Source.scala:162) at com.snowplowanalytics.snowplow.enrich.stream.sources.KafkaSource.run(KafkaSource.scala:88) at com.snowplowanalytics.snowplow.enrich.stream.Enrich$class.run(Enrich.scala:73) at com.snowplowanalytics.snowplow.enrich.stream.KafkaEnrich$.run(KafkaEnrich.scala:37) at com.snowplowanalytics.snowplow.enrich.stream.KafkaEnrich$.main(KafkaEnrich.scala:39) at com.snowplowanalytics.snowplow.enrich.stream.KafkaEnrich.main(KafkaEnrich.scala)

I think it’s a related to jackson’s version:

  • jackson.databind 2.3.1
  • jackson.core 2.9.3

Does jackson 2.9.3 support scala 2.11?

Thanks for the help


Error when running stream enrich with kafka sink
#2

hey @Hatem_ben, which version of stream enrich are you using? this has been fixed in https://github.com/snowplow/snowplow/issues/3744 and stream enrich 0.16.1.


#3

Hey @BenFradet, thanks for the reply.
I am using stream-enrich 0.1.16


#4

apparently kafka ships with its own version of databind, it has been reported in https://github.com/snowplow/snowplow/issues/3767


#5

Aw i can see it !

When i compile and clean the project, jackson-databind jar version is 2.3.1 and jackson-core is 2.9.1

Another thing please, is there a support of Kafka 1.0.0 ?


#6

yes since release 101: https://snowplowanalytics.com/blog/2018/03/21/snowplow-r101-neapolis-with-initial-gcp-support/#kafka


#7

Hi @BenFradet

May i change Kafka versions from 1.0.1 to 1.0.0 for both Scala Stream Collector 0.13 and Stream Enrich 0.16?

Is it possible ?
Thanks in advance


#8

That’s the great thing with open source, you can fork the github repository, change the kafka version, rebuild the collector and stream enrich and run those forked versions.


#9

That’s done great !

Thanks a lot