gpt4 book ai didi

maven - Apache Spark 依赖问题

转载 作者:可可西里 更新时间:2023-11-01 15:29:35 33 4
gpt4 key购买 nike

我正在尝试在 Hadoop 集群中运行我的 spark 应用程序。集群中运行的spark版本为1.3.1。在集群中打包和运行我的 spark 应用程序时,出现如下错误。我也查看了其他帖子,好像我搞砸了库依赖项,但无法弄清楚是什么!

以下是可能对你们帮助我有帮助的其他信息:

hadoop -版本:

Hadoop 2.7.1.2.3.0.0-2557
Subversion git@github.com:hortonworks/hadoop.git -r 9f17d40a0f2046d217b2bff90ad6e2fc7e41f5e1
Compiled by jenkins on 2015-07-14T13:08Z
Compiled with protoc 2.5.0
From source with checksum 54f9bbb4492f92975e84e390599b881d
This command was run using /usr/hdp/2.3.0.0-2557/hadoop/lib/hadoop-common-2.7.1.2.3.0.0-2557.jar

错误堆栈:

java.lang.NoSuchMethodError: org.apache.spark.sql.hive.HiveContext: method <init>(Lorg/apache/spark/api/java/JavaSparkContext;)V not found
at com.cyber.app.cyberspark_app.main.Main.main(Main.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:577)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:174)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:197)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我的 pom.xml 看起来像这样:

<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>path.to.my.main.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>1.6.1</version>
<scope>provided</scope>
</dependency>
</dependencies>

我正在使用“mvn package”来打包我的 jar。

编辑:

  1. 我尝试将所有版本更改为 1.3.1。如果我做这个改变,我需要更改我的应用程序,因为我正在使用以前的功能1.3.1 后可用。

  2. 但是如果我把所有的1.6.1编译下Scala_2.10,我得到同样的错误。

如果我需要提供任何其他信息,请告诉我。任何帮助将不胜感激。

谢谢。

最佳答案

这可能是二进制兼容性问题。

首先,确保您所有的 Spark 依赖项都在 Spark 1.3.1 上。我看到您在 1.6.1 上安装了 Spark SQL。

其次,您使用的是在 Scala 2.11 上编译的 Spark。 Spark 的典型发行版仅在 2.10 上编译。通常,如果你想要 2.11 版本,你需要自己编译 spark。

如果您不确定集群上运行的 Spark 是否使用 Scala 编译,我会更改所有依赖项以使用“2.10”而不是“2.11”,然后重试。

关于maven - Apache Spark 依赖问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36903302/

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