无法运行spark java程序

gab6jxml  于 2021-05-29  发布在  Hadoop
关注(0)|答案(4)|浏览(407)

我正在运行一个用java编写的spark程序&我正在使用示例wordcount示例。我已经创建了一个jar文件,但是当我提交spark作业时,它抛出了一个错误。

$ spark-submit --class WordCount --master local \ home/cloudera/workspace/sparksample/target/sparksample-0.0.1-SNAPSHOT.jar

我得到下面的错误

java.lang.ClassNotFoundException: wordCount
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.apache.spark.util.Utils$.classForName(Utils.scala:175)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:689)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我还添加了pom.xml,以便您能提供帮助。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.igi.sparksample</groupId>
  <artifactId>sparksample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
  <dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-client</artifactId>
  <version>2.6.0</version>
</dependency>
</dependencies>
</project>
e1xvtsh3

e1xvtsh31#

确保传递给的类的名称(wordcount或wordcount或其他…) spark-submit 和你定义的完全一样。
确保 Package 正确。
要进行验证,请打开/提取jar并查看类名和包层次结构。

1l5u6lss

1l5u6lss2#

在尝试了这么多的组合和做了一点研发之后,我解决了我的问题。问题出在我的spark submit命令中我把它改成了这个

spark-submit --class com.xxx.sparksample.WordCount --master local  /home/cloudera/workspace/sparksample/target/sparksample-0.0.1-SNAPSHOT.jar

而且成功了。

vktxenjb

vktxenjb3#

它找不到 WordCount 班级。您可能需要包含类所在的包,这样就有了完整的类路径,即: --class <PACKAGE>.WordCount

gc0ot86w

gc0ot86w4#

你发布的错误显示spark没有任何问题。
但是,您的程序中必须有一个输入错误。java抛出了一个 ClassNotFoundException 寻找 wordCount ,最有可能的地方 WordCount ,大写w。
请检查您的类和导入的名称。

相关问题