Я обновляю Spark 1.6 до версии 2.1 (HortonWorks Distribution).Ниже поясняются сценарии Этап 1 и Этап 2, Этап 1 с успешным выполнением и Этап 2 Сбой.
Этап 1
Зависимости POM xml для Spark 1.6.3 (которые работают абсолютно нормально):
scala tools version 2.10
scala version 2.10.5
scala compiler version 2.10.6
spark-core_2.10
spark-sql_2.10
spark version 1.6.3
Существует общий набор используемых библиотек -
commons-csv-1.4.jar
commons-configuration2-2.1.1.jar
commons-beanutils-1.9.2.jar
commons-email-1.4.jar
javax.mail-1.5.2.jar
sqoop-1.4.6.2.3.0.12-7.jar
avro-mapred-1.8.2.jar
avro-1.8.2.jar
guava-14.0.jar
commons-logging-1.1.3.jar
jackson-module-scala_2.10-2.4.4.jar
jackson-databind-2.4.4.jar
jackson-core-2.4.4.jar
xdb6.jar
jackson-mapper-asl-1.9.13.jar
ojdbc7-12.1.0.2.jar
Stage2
Когда я изменяю зависимости и версию свечи в POM.xml на -
scala tools version 2.11
scala version 2.11.8
scala compiler version 2.11.8
spark-core_2.11
spark-sql_2.11
spark version 2.1.0
Кроме того, из общего набора библиотек я просто меняю -
jackson-module-scala_2.11-2.6.5.jar
jackson-core-2.6.5.jar
jackson-databind-2.6.5.jar
Хотя я беру сборку и пытаюсь запустить ее на кластере с конфигурацией Spark как 2.1 и scala как 2.11.8, она завершается с ошибкой ниже.
INFO: Exception in thread "main" java.lang.IncompatibleClassChangeError:
class com.xxx.xxx.xxx.DQListener has interface
org.apache.spark.scheduler.SparkListener as super class
Я уверен, что проблема в том, чтобы импортировать правильные банки, но не могу определить, какой именно.Буду признателен, если кто-нибудь может помочь решить эту проблему, пожалуйста.