从Spark 1.6升级到2.1-不兼容的类更改错误

时间:2018-09-19 00:03:58

标签: scala apache-spark apache-spark-sql scala-collections

我正在从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

我确定问题出在导入正确的罐子,但无法找出哪个罐子。如果有人可以帮助解决此问题,我将不胜感激。

0 个答案:

没有答案