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>

Надеюсь, это решит вашу проблему.

Другие вопросы по тегам