Конфликты привязки данных Джексона в проекте Apache Spark с использованием плагина Maven ShadeJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Конфликты привязки данных Джексона в проекте Apache Spark с использованием плагина Maven Shade

Сообщение Anonymous »

Я работаю над проектом, который обрабатывает данные IMDb с помощью Apache Spark. Моя установка включает в себя зависимости Spark Core и Spark SQL, а также Jackson для обработки сериализации и десериализации JSON. Я использую Maven для управления зависимостями и плагин Maven Shade для упаковки моего приложения в толстый JAR-файл для развертывания.
Проблема:
Когда я запускаю приложение Spark, я сталкиваюсь с проблемами во время выполнения Джексона, в частности jackson-databind. Похоже, что существуют конфликты между версиями Джексона, включенными в зависимости. Несмотря на явное указание версии в pom.xml, проблема сохраняется.
Среда

Версия Java: 11

Версия Spark: 3.5.1

Версия Scala: 2.13

Версия Jackson: 2.15.2

Инструмент сборки: Maven
Журнал ошибок stderr в кластере EMR

Код: Выделить всё

    at org.apache.spark.SparkContext.withScope(SparkContext.scala:924)
at org.apache.spark.SparkContext.textFile(SparkContext.scala:1055)
at org.apache.spark.api.java.JavaSparkContext.textFile(JavaSparkContext.scala:175)
at org.example.Main.totalTvSeries(Main.java:73)
at org.example.Main.main(Main.java:47)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.hadoop.util.RunJar.run(RunJar.java:328)
at org.apache.hadoop.util.RunJar.main(RunJar.java:241)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Scala module 2.15.2 requires Jackson Databind version >= 2.15.0 and < 2.16.0 - Found jackson-databind version 2.12.7-1
at com.fasterxml.jackson.module.scala.JacksonModule.setupModule(JacksonModule.scala:61)
at com.fasterxml.jackson.module.scala.JacksonModule.setupModule$(JacksonModule.scala:46)
at com.fasterxml.jackson.module.scala.DefaultScalaModule.setupModule(DefaultScalaModule.scala:17)
at com.fasterxml.jackson.databind.ObjectMapper.registerModule(ObjectMapper.java:835)
at org.apache.spark.rdd.RDDOperationScope$.(RDDOperationScope.scala:82)
...  11 more
Мой pom.xml

Код: Выделить всё

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

org.example
IMDBSpark
1.0-SNAPSHOT


11
11
UTF-8





org.apache.spark
spark-core_2.13
3.5.1




org.apache.spark
spark-sql_2.13
3.5.1




com.fasterxml.jackson.core
jackson-databind
2.15.2




com.fasterxml.jackson.module
jackson-module-scala_2.13
2.15.2







com.fasterxml.jackson.core
jackson-databind
2.15.2


com.fasterxml.jackson.core
jackson-core
2.15.2


com.fasterxml.jackson.core
jackson-annotations
2.15.2








org.apache.maven.plugins
maven-shade-plugin
3.2.4


package

shade




org.example.Main




*:*

META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA











Что я пробовал

1. Выравнивание версий Джексона: я использовал раздел dependencyManagement в Maven, чтобы выровнять все зависимости Джексона (

Код: Выделить всё

jackson-databind
, jackson-core, jackson-annotations) до версии 2.15.2.
2. Проверка конфликтов транзитивных зависимостей. Я запустил mvn dependency:tree и обнаружил, что некоторые транзитивные зависимости от Spark включают более старые версии Jackson. Я использовал в некоторой зависимости, чтобы удалить привязку jackson-databind.
В чем мне нужна помощь:

Как мне разрешить этот конфликт между зависимостями Jackson и Spark в проекте на основе Maven?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ade-plugin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»