我正在运行一个用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>
4条答案
按热度按时间e1xvtsh31#
确保传递给的类的名称(wordcount或wordcount或其他…)
spark-submit
和你定义的完全一样。确保 Package 正确。
要进行验证,请打开/提取jar并查看类名和包层次结构。
1l5u6lss2#
在尝试了这么多的组合和做了一点研发之后,我解决了我的问题。问题出在我的spark submit命令中我把它改成了这个
而且成功了。
vktxenjb3#
它找不到
WordCount
班级。您可能需要包含类所在的包,这样就有了完整的类路径,即:--class <PACKAGE>.WordCount
gc0ot86w4#
你发布的错误显示spark没有任何问题。
但是,您的程序中必须有一个输入错误。java抛出了一个
ClassNotFoundException
寻找wordCount
,最有可能的地方WordCount
,大写w。请检查您的类和导入的名称。