Zeppelin Spark Maxmind jackson.databind NoSuchMethodError
Я экспериментирую с использованием Zeppelin / Spark для определения географического местоположения IP-адресов с помощью библиотеки Maxmind GeoIP. Я сталкиваюсь с NoSuchMethodError, которая при чтении форумов, похоже, является проблемой зависимости, так как метод отсутствует в некоторых версиях библиотеки Джексона. Как я могу идентифицировать и решить эту проблему зависимости в Zeppelin? Я загружаю geoip2 через%dep и безуспешно удаляю старые версии библиотеки Джексона из zeppelin/lib/lib. Спасибо!
%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
1 ответ
Недавно я столкнулся с той же проблемой, поэтому я знаю, как это расстраивает. Я вижу, что вы используете maxmind geoIp 2.7.
Я пробовал иметь с версией 2.8, 2.7. В финальной сборке была установлена последняя версия библиотек Джексона.
Попробуйте использовать версию 2.4 того же самого. который использует jackson-jr-объекты версии менее 2.7. Мне потребовалось три дня, чтобы понять это. Это сработало для меня.
<!-- https://mvnrepository.com/artifact/com.maxmind.geoip2/geoip2 -->
<dependency>
<groupId>com.maxmind.geoip2</groupId>
<artifactId>geoip2</artifactId>
<version>2.4.0</version>
</dependency>
Надеюсь, это решит вашу проблему.