spark-submit运行idea生成的jar包无法找到主类

背景

我在网上把基本上能找到的方法都试过了,然后追根溯源到了idea搭建spark环境上面,这种搭建教程千奇百怪,各不相同,最终看到一位大佬的操作之后终于找到了我debug 5小时的bug(如题)

解决方案

搭建可以参考Idea本地运行spark,操作HDFS(spark-without-hadoop版的spark)

关键在于打包jar包时的选择
JAR files 来自库

  • 提取到目标JAR – 会生成一个独立的大jar包,无法获取独立程序jar包,因此会产生如题的问题
  • 通过manifest配置文件复制到输出目录 – 这样就不影响我们获取唯一的程序代码jar包文件
    在这里插入图片描述

验证

在这里插入图片描述

参考链接

解决我问题的搭建教程

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 1. 首先,需要在IDE中创建一个Maven项目,并添加Spark依赖。 2. 在项目中创建一个Main类,并编写Spark程序。 3. 在IDE中打包项目,生成一个jar包。 4. 将生成jar包上传到Spark集群中。 5. 在Spark集群中运行以下命令: ``` spark-submit --class com.example.Main --master yarn --deploy-mode cluster /path/to/jar ``` 其中,com.example.Main是Main类的完整路径,/path/to/jarjar包路径。 6. 等待程序运行完成,查看输出结果。 ### 回答2: 将idea中的java项目打包成一个可执行的jar包,可以方便地在spark集群中运行。实现步骤如下: 1.在idea中,选中项目右击,点击“Open Module Setting”打开模块设置。 2.进入模块设置界面,点击左侧菜单中的“Artifacts”,然后点击“+”号添加一个新的Artifact。 3.选择“Jar”类型,填写Artifact的名称和输出路径。 4.定义Artifact所需要打包的内容,如项目中使用的外部库、资源文件和自身编写的类等。在“Output Layout”界面中进行规划和配置。 5.将Artifact设置为“Build on make”,以便在每次编译时自动打包。 6.完成Artifact设置后,点击“OK”保存配置,然后再次右键点击项目,选择“Build Artifact” -> 要打包的Artifact名字 -> “Build”。 7.成功完成打包后,可以在指定输出路径找到生成jar包。 8.在spark集群中调用该jar包,使用“spark-submit”命令提交任务,并指定jar包路径和主函数类名。例如: $ spark-submit --class com.example.Main --master spark://master:7077 myproject.jar 有了打包好的jar包,可以方便地在不同的机器上运行spark任务,而且能够有效地减少开发者的工作量和提高程序的可维护性和重用性。 ### 回答3: 在将 IDEA 项目打包为 JAR 文件并在 Spark运行之前,我们需要先了解一些基本概念和步骤。 首先需要明确的是,Spark是一个分布式计算框架,它的运行需要一个集群环境,而 JAR 文件则是一种可执行程序文件,是用来包含所有依赖的文件和代码。 因此,在将 IDEA 项目打包为 JAR 文件之前,需要确保你已经搭建好了 Spark 集群环境,并且在项目中引入了必要的 Spark 依赖。 接下来,我们可以按照以下步骤将 IDEA 项目打包为 JAR 文件: 1. 在 IDEA 中选择项目 → 打包 → 打包为 JAR 文件。 2. 在弹出的窗口中选择所需的设置,包括打包的模块、存放路径、依赖项等等。此外,还需要指定启动类(即包含 main 方法的类)。 3. 点击“打包”按钮,即可生成 JAR 文件。 4. 将生成JAR 文件上传到 Spark 集群中的某个节点(比如 master 节点),同时确保所有依赖包都已正确安装。 最后,我们可以通过以下命令在 Spark运行 JAR 文件: ``` spark-submit --class <main-class> --master <master-url> <path-to-jar> [args] ``` 其中,<main-class> 表示启动类的完整类名,<master-url> 表示 Spark 集群的主节点 URL,<path-to-jar> 表示 JAR 文件在节点上的路径,[args] 表示可选的运行参数。 总之,将 IDEA 项目打包为 JAR 文件并在 Spark运行,需要确保正确搭建集群环境和引入必要的依赖,以及熟悉打包和运行命令的使用方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值