我正在从Spark 1.6升级到2.1版本(HortonWorks Distribution)。下面说明了第1阶段和第2阶段方案,第1阶段执行成功,而第2阶段失败。
阶段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
阶段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
我确定问题出在导入正确的罐子,但无法找出哪个罐子。如果有人可以帮助解决此问题,我将不胜感激。