Spark Cassandra Connector Maven构建异常求助(Scala2.11/Spark2.2.0)
Spark读取Cassandra构建异常排查(Scala 2.11 + Spark 2.2.0)
最近开发一个从Cassandra读取数据的Spark应用,用的是Scala 2.11和Spark 2.2.0版本,结果构建时直接报错:“加载类文件package.class时检测到缺失或无效依赖”,完全摸不着头脑,有没有大佬帮忙分析下?
下面是我POM文件里的部分配置:
<properties> <maven.compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> <encoding>UTF-8</encoding> <!-- 其他POM内容未完全贴出 --> </properties>
几个可能的排查方向:
- JDK版本不匹配:Spark 2.2.0官方推荐用JDK 1.8,你POM里指定的是1.6,而Scala 2.11本身也是基于JDK 1.8优化的,版本过低很可能导致依赖编译时出现兼容性问题。建议把
maven.compiler.source和maven.compiler.target都改成1.8试试。 - Cassandra Connector版本不对:Spark和Cassandra Connector的版本必须严格对应,Spark 2.2.0对应的Connector版本应该是2.0.x系列(比如2.0.10)。如果你的POM里没加或者版本错了,很容易出现依赖缺失。可以添加这个依赖:
<dependency> <groupId>com.datastax.spark</groupId> <artifactId>spark-cassandra-connector_2.11</artifactId> <version>2.0.10</version> </dependency>
- 依赖冲突或缺失:执行
mvn clean dependency:tree命令生成依赖树,仔细检查有没有和Spark、Cassandra相关的依赖冲突,或者某些必要的包没拉下来。 - Scala插件配置问题:确保POM里的Scala Maven插件配置正确,指定好对应的Scala版本,比如:
<plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <scalaVersion>2.11.12</scalaVersion> </configuration> </plugin>
内容的提问来源于stack exchange,提问作者Sammy
相关产品推荐
相关产品推荐

