首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单机环境下运行Apache spark Java程序

如何在单机环境下运行Apache spark Java程序
EN

Stack Overflow用户
提问于 2015-02-19 17:39:43
回答 4查看 3.6K关注 0票数 2

我已经为spark写了一个java程序,但是我不能从命令行运行它。

我已经按照快速入门指南中给出的步骤进行了操作,但出现以下错误。请帮我解决这个问题。

下面是错误:

代码语言:javascript
复制
hadoopnod@hadoopnod:~/spark-1.2.1/bin$ ./run-example "SimpleApp " --master local /home/hadoopnod/Spark_Java/target/simple-project-1.0.jarjava.lang.ClassNotFoundException: org.apache.spark.examples.SimpleApp
    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.deploy.SparkSubmit$.launch(SparkSubmit.scala:342)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
EN

回答 4

Stack Overflow用户

发布于 2015-09-30 22:57:00

使用以下命令创建一个JAR文件。您可以在“target/ SimpleApp.class”文件夹中找到类文件。cd复制到此目录。

代码语言:javascript
复制
jar cfve file.jar SimpleApp.class

将此JAR文件放入您的项目的目标目录中。这个JAR文件包含向Spark提交作业时SimpleApp类的依赖项。

cd到你的spark目录。我使用的是spark-1.4.0-bin-hadoop2.6。您的cmd如下所示。

代码语言:javascript
复制
spark-1.4.0-bin-hadoop2.6>

使用spark Submit提交您的Spark程序。如果你有哈莎在另一个答案中解释过的结构,那么提供

代码语言:javascript
复制
--class org.apache.spark.examples.SimpleApp 

否则

代码语言:javascript
复制
--class SimpleApp

最后提交你的spark程序。

代码语言:javascript
复制
spark-1.4.0-bin-hadoop2.6>./bin/spark-submit --class SimpleApp --master local[2] /home/hadoopnod/Spark_Java/target/file.jar
票数 4
EN

Stack Overflow用户

发布于 2015-02-19 22:26:04

脚本./run-example.sh用于执行发行版中包含的示例。要运行示例"SparkPi“,请执行以下操作...

代码语言:javascript
复制
> cd /apps/spark-1.2.0
> ./bin/run-example SparkPi

如果你看看这个脚本是如何执行的,就会发现它只是一个新的用户友好的包装器,实际上调用了spark-submit

下面是一个执行上面相同的"SparkPi“示例的示例,但使用的是spark-submit

代码语言:javascript
复制
> .bin/spark-submit --class org.apache.spark.examples.SparkPi --master local examples/target/spark-examples_2.10-1.2.0.jar

您应该使用spark-submit来运行您自己的代码。

票数 0
EN

Stack Overflow用户

发布于 2015-02-20 09:24:18

代码语言:javascript
复制
ClassNotFoundException: org.apache.spark.examples.SimpleApp

从上面的错误中,可以清楚地看出它找不到您正在尝试执行的类的原因。您是否将java项目捆绑到一个jar文件中。如果在创建jar文件时有任何其他依赖项,则还需要包含它们。

假设你有一个这样的项目结构

代码语言:javascript
复制
simpleapp
 - src/main/java
   - org.apache.spark.examples
     -SimpleApp.java
 - lib
    - dependent.jars (you can put all dependent jars inside lib directory)
 - target
    - simpleapp.jar (after compiling your source)

您可以使用任何构建工具或任何IDE将源代码捆绑到一个Jar文件中。之后,如果你已经将spark/bin目录添加到你的路径中。你可以从你的项目目录执行下面的命令。仅当SimpleApp.java中有依赖库时,才需要添加--jars $(echo lib/*.jar | tr‘',’)

代码语言:javascript
复制
spark-submit --jars $(echo lib/*.jar | tr ' ' ',' ) --class org.apache.spark.examples.SimpleApp --master local[2]  target/simpleapp.jar
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28602944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档