Java 如何在cmd上提交spark申请
我有一个Spark应用程序,我最初是使用maven(在windows上)创建的。我将我的maven项目转换为Eclipse项目,现在我正在通过Eclipse进行开发。Java 如何在cmd上提交spark申请,java,eclipse,maven,apache-spark,cmd,Java,Eclipse,Maven,Apache Spark,Cmd,我有一个Spark应用程序,我最初是使用maven(在windows上)创建的。我将我的maven项目转换为Eclipse项目,现在我正在通过Eclipse进行开发。 我能够通过Eclipse运行应用程序来利用和验证这一点 现在,我正试图通过命令行提交我的申请。我使用spark submit命令如下: bin\spark-submit \ --class C:\Users\pc\Desktop\eclipse\myapp\src\main\java\myapp\Main.java \
我能够通过Eclipse运行应用程序来利用和验证这一点 现在,我正试图通过命令行提交我的申请。我使用spark submit命令如下:
bin\spark-submit \
--class C:\Users\pc\Desktop\eclipse\myapp\src\main\java\myapp\Main.java \
--master local[8] \
C:\Users\pc\Desktop\eclipse\myjar.jar
当我提交我的jar时,我得到一个错误,说不能从jar文件加载主类
我做错了什么?它是我的主类(
--class C:\Users\pc\Desktop\eclipse\myapp\src\main\java\myapp\main.java
)的路径吗?--您将类(如packagename.ClassName)放入的类
所以我猜是myapp.Main
./bin/spark-submit --class myapp.Main --master local[8] C:\Users\pc\Desktop\eclipse\myjar.jar
--类:应用程序的入口点(例如org.apache.spark.examples.SparkPi)
这不是本地硬盘上文件的路径。考虑一个分布式计算机集群。它们并非都可以访问您给定的文件路径
看起来您应该使用myapp.Main
JAR文件也是如此
application jar:绑定jar的路径,包括应用程序和所有依赖项。URL必须在集群内全局可见,例如,所有节点上都存在的hdfs://路径或file://路径
我使用的是非必需的sleshes,这就是为什么我不能在windows上正确部署它,这是提交它的正确方式
bin\spark-submit --class myapp.Main -- master local[*] file:///C:\Users\pc\Desktop\eclipse\myjar.jar
我的罐子的路径应该是什么样子?你能给我举个例子吗?如果你有一个独立的集群,那么你拥有的应该是好的。如果您有一个分布式Linux机箱集群,那么假设您的JAR位于每台机器上的
/tmp/myapp.JAR
,那么您会说file:///tmp/myapp.jar
,如果您有一些分布式服务器,如HDFS或S3,将file://
替换为hdfs://
或s3://
并指向该文件的路径。现在我使用本地模式只是为了测试,但稍后我将与hdfs一起使用,我将尝试此操作并随时通知您。谢谢您您使用了jar文件的什么路径?这是路径C:\Users\pc\Desktop\eclipse\myjar.jar如何构建jar?显示项目文件夹和maven或sbt文件的完整日志和结构。这是我项目的结构:myapp->src->main->java->myapp->main包myapp contais是main类,我使用maven,但遇到了一个异常(这里有一个链接了解更多详细信息),所以我手动创建了jar(导出->java->Runnable jar文件)