2

I'm experimenting with using Zeppelin / Spark to perform geo-location on IP addresses using the Maxmind GeoIP library. I am encountering a NoSuchMethodError which from reading the forums appears to be a dependency issue with the method not being in certain versions of the jackson lib. How can I go about identifying and resolving this dependency issue in Zeppelin? I load geoip2 via %dep and have removed the older versions of the jackson lib from zeppelin/lib/lib to no avail. Thanks!

%dep
z.addRepo("geoip2").url("http://mvnrepository.com/artifact/com.maxmind.geoip2/geoip2/2.7.0")
z.load("com.maxmind.geoip2:geoip2:2.7.0")

java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.node.ArrayNode.<init>(Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;Ljava/util/List;)V
user2392965
  • 435
  • 2
  • 4
  • 13

1 Answers1

1

I recently faced the same issue so I know how frustrating it is. I can see you are using maxmind geoIp 2.7.

I tried have with version 2.8, 2.7. In the final build there was the latest version of the jackson libraries.

Try using the 2.4 version of the same. which uses jackson-jr-objects of version less than 2.7. It took me three days to figure it out. It worked for me.

<!-- https://mvnrepository.com/artifact/com.maxmind.geoip2/geoip2 -->
<dependency>
    <groupId>com.maxmind.geoip2</groupId>
    <artifactId>geoip2</artifactId>
    <version>2.4.0</version>
</dependency>

Hope it solves your problem.

Preetam Kumar
  • 436
  • 2
  • 19