gpt4 book ai didi

java.lang.ClassNotFoundException : org. Spark_project.guava.collect.MapMaker

转载 作者:行者123 更新时间:2023-12-02 11:08:54 29 4
gpt4 key购买 nike

我正在尝试将 apache Spark 与 spring-boot cassandra 项目集成。但在运行项目时出现以下错误:

    Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/spark_project/guava/collect/MapMaker] with root cause
java.lang.ClassNotFoundException: org.spark_project.guava.collect.MapMaker

我检查了我的 Maven 依赖项,mapmaker 文件存在于“org/spark_project/guava/collect/”内的 Spark-network-common_2.11.jar 中。这是我正在使用的 pom 文件依赖项:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-cassandra</artifactId>
</dependency>

<!-- https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core -->
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.5.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-network-common -->
<!-- <dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-network-common_2.10</artifactId>
<version>1.3.0</version>
</dependency> -->
<!-- <dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-network-common_2.11</artifactId>
<version>2.2.1</version>
</dependency> -->


<!-- https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-mapping -->
<!-- <dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-mapping</artifactId>
<version>3.5.0</version> </dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>


<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
</dependency>




<!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector -->
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.0.8</version>
</dependency>


<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.2.1</version>
</dependency>

</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

spark-network-common_2.11.jar 附带了 Spark-core 依赖项,我仍然尝试单独添加它,但即使这样也不起作用。spring-boot 在运行时无法识别mapmaker 文件可能是什么问题?如有任何帮助,我们将不胜感激。

最佳答案

“org.spark_project.guava.collect.MapMaker”的包路径严重暗示guava包已被重新定位到spark_project中以避免依赖 hell 。

诸如此类的事情是由构建过程控制的,并且很容易被忽视,这是库之间不兼容的根源。

我的直觉是,您可能正在使用不匹配的库版本,虽然技术上可能是兼容的,但并不是因为 Guava 的重新定位不同。

你有

   <artifactId>spark-network-common_2.10</artifactId>

当其他依赖项列出 2.11 时,已注释掉。

这些代表所使用的 Scala 语言+运行时的版本号,并且应该在使用 Scala 的任何项目中匹配。

哪个类/库正在尝试加载重新定位的 Guava?这应该会给您一个很大的提示,表明哪个库可能已过时/不匹配。

关于java.lang.ClassNotFoundException : org. Spark_project.guava.collect.MapMaker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727294/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com