无法运行Spark Java程序

时间:2016-07-27 08:19:36

标签: hadoop apache-spark bigdata

我正在运行用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 个答案:

答案 0 :(得分:2)

尝试了这么多组合并做了一点R&amp; D后我解决了我的问题。 问题出在我的spark submit命令中,我将其更改为此

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

并且有效。

答案 1 :(得分:0)

它无法找到WordCount类。您可能需要包含该类所在的包,因此您拥有完整的类路径,即:

--class <PACKAGE>.WordCount

答案 2 :(得分:0)

您发布的错误并未显示Spark的任何问题。

但是,您的程序中必须输入拼写错误。 Java抛出ClassNotFoundException寻找wordCount,它最有可能是WordCount,大写字母为W. {/ p>

请检查班级名称和进口名称。

答案 3 :(得分:0)

确保传递给spark-submit的类名(wordcount或WordCount或其他......)与您定义的完全相似。
确保包装正确无误。
要验证,请打开/解压缩jar并查看类名和包层次结构。