gpt4 book ai didi

java - 隔离 Maven 依赖项

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:10 24 4
gpt4 key购买 nike

我正在尝试将 Spark 集成到 Maven 项目中,包括以下依赖项:

    <dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>2.1.0</version>
</dependency>

但是我还有另一个使用 Scala 2.10 的依赖项

   <dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.4</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.10</artifactId>
<version>2.2.1</version>
</dependency>

因此,我收到运行时异常,因为 Spark 无法找到 Scala 2.11 函数,因为该项目正在部署 2.10。在仅具有 Spark 依赖项的独立项目中,一切正常。

如何隔离 Spark Artifact ,以便它们可以使用 Scala 2.11 并且不会干扰其他库?

最佳答案

是否可以将您的第一个应用程序重构为 SpringBoot 应用程序并托管为微服务?为此,您可以使用 PCF 或 PWS。完成后,您的第二个应用程序(似乎是您的主项目)需要使用第一个应用程序的相关公开端点。通过这种方法,您最终将“打破整体”为两个松散耦合的微服务,彼此通信,以避免应用程序互相踩踏,这似乎是现在的问题。

似乎有一些工具可以将 YARN 管理的 Hadoop 集群、Spring 框架和 Scala/Spark 引入到单一平台中。您可以开始查看文档https://docs.spring.io/spring-hadoop/docs/current/reference/html/springandhadoop-spark.html对于相同的。

我在这里假设您正在 Hadoop 集群上编写应用程序,因为您正在谈论调用/使用 Spark 实用程序的 Scala 项目。

你可以尝试一下。需要在代码级别进行一些重构,但这两个应用程序的架构将是可扩展和可维护的,以避免将来出现所有类型的依赖问题。

关于java - 隔离 Maven 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43887454/

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