spark入门,提交一个 SimpleApp jar包到linux上的spark

本文档介绍了如何在Linux上安装Scala和Spark,创建Maven项目,编写SimpleApp,打包成jar,以及如何提交jar包到Spark运行。通过这个过程,初学者可以了解Spark应用的基本提交流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spark中文文档没出来前,学习英文很痛苦,分享下自己的学习,好了,上内容,搞完继续去看传说中的english!

一、前提条件

linux 安装 scala   和 spark

scala

二、创建一个maven项目

SimpleApp.java

### 如何在虚拟机 Spark 集群上运行 JAR 要在虚拟机上的 Spark 集群中运行 JAR ,通常需要完成以下几个方面的操作: #### 1. 准备工作 确保 Spark 已经正确安装并配置在虚拟机集群环境中。这括 Master 和 Slave 节点之间的网络通信正常以及 Hadoop 的正确配置[^4]。 #### 2. 构建 Scala 或 Java 项目 使用 IntelliJ IDEA 创建一个 Scala 项目(推荐),或者 Maven/Gradle 项目来编写 Spark 应用程序代码。如果遇到依赖问题,可以通过手动导入 Spark 安装中的 jar 文件解决[^2]。 #### 3.应用程序 通过 IntelliJ IDEA 将开发好的 Spark 程序打成可执行的 fat-jar (uber-jar),其中含了所有的依赖项。具体步骤如下: - 在 IDEA 中右键点击项目 -> Add Framework Support -> 添加 Artifact。 - 设置 Main Class 并指定输出路径。 - 使用 `Build` 功能生成最终的 jar 文件[^3]。 #### 4. 提交作业至 Spark Cluster 将构建好的 jar 文件上传到目标服务器(通常是 Master 节点)。可以利用 SCP 命令或其他工具实现文件传输。之后,在命令行界面输入以下格式启动应用: ```bash spark-submit \ --class com.example.MainClass \ --master spark://<Master_IP>:7077 \ /path/to/application.jar arg1 arg2 ... ``` 上述参数解释如下: - `--class`: 指定入口类名; - `--master`: 明确指明使用的 master URL 地址; - `/path/to/application.jar`: 表示实际的应用程序位置及其名称; - `arg1`, `arg2`: 可选参数传递给 main 方法[^1]。 注意:对于 Windows 用户来说可能还需要额外处理一些兼容性问题比如 winutils.exe 的缺失情况。 #### 5. 远程调试支持(可选项) 为了方便排查错误信息,可以在本地设置断点并通过 IDE 实现远程调试功能。此过程涉及调整 JVM 启动脚本加入相应监听端口等内容。 --- ### 示例代码片段 下面是一个简单的 WordCount 示例用于演示如何创建 Spark Application: ```scala import org.apache.spark.sql.SparkSession object SimpleApp { def main(args: Array[String]): Unit = { val logFile = args(0) // Should be some file on your system val spark = SparkSession.builder.appName("Simple Application").getOrCreate() val logData = spark.read.textFile(logFile).cache() val numAs = logData.filter(line => line.contains("a")).count() println(s"Lines with a: $numAs") spark.stop() } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值