我们的java应用程序依赖于Spark,它是用Scala编写的。构建工具是Maven,我在Eclipse中运行。 JDK_HOME用于使用Maven在命令行上编译应用程序,而用于在Eclipse中运行的JRE都是1.7.0_15
。
Maven POM包含以下内容:
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
...
<configuration>
<scalaVersion>1.10.5</scalaVersion>
<args>
<arg>-target:jvm-1.7</arg>
</args>
</configuration>
</plugin>
我知道Spark是使用Scala 2.10构建的
maven依赖项包括以下内容:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-hadoop</artifactId>
<version>2.1.0.Beta4</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-spark_2.10</artifactId>
<version>2.1.0.Beta4</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-xml</artifactId>
<version>2.11.0-M4</version>
</dependency>
<dependency>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-parser-combinators_2.12.0-M2</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.3.0</version>
</dependency
&GT;
在运行时,抛出以下异常:
Exception in thread "main" java.lang.UnsupportedClassVersionError: scala/util/parsing/combinator/PackratParsers : Unsupported major.minor version 52.0
我找不到scala-parser-combinators
jar的2.10。*版本。
有人可以协助解决方案吗?
谢谢!
答案 0 :(得分:2)
scala-parser-combinators_2.12.0-M2
模块是Scala 2.12发行版的一部分。
2.12针对Java 8 - 字节码主要版本52,因此出错。
您最好的选择是使用较旧的Spark发行版或切换到Java 8 (Java 7自2015年4月起停止使用)。
编辑(解决问题编辑):您无法找到scala-parser-combinators
库的旧版本,因为它在2.10之后的某个时刻被隔离到独立模块。您可以尝试简单地exclude this dependency in your POM,但不能保证您选择的Spark版本与此旧库版本兼容。