我正在从Spark 1.6升级到2.1版本(HortonWorks Distribution) . 下面解释 Stage 1 和第2阶段情景,第1阶段成功执行, Stage 2 失败 .

Stage 1

Spark 1.6.3的POM xml依赖项(工作正常)是,

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

Stage 2

当我将POM.xml中的依赖项和spark版本更改为 -

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

我确定问题在于导入正确的 jar 但不能找出哪一个 . 如果有人能帮忙解决这个问题,我将不胜感激 .