spark 提交jar包运行

本文详细解析了使用Spark进行大规模数据处理的配置参数,包括内存分配、并行度设置及故障恢复策略等关键内容,旨在优化Spark作业的运行效率。

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

./spark-submit --class RunIdMapping --name oot-xgboost-model
–master=yarn --queue root.xy_etl --driver-memory 40g --num-executors 200 --executor-cores 2 --executor-memory 6g --conf spark.yarn.am.memory=1g --conf spark.default.parallelism=400
–conf spark.dynamicAllocation.enabled=false --conf spark.yarn.maxAppAttempts=4
–conf spark.task.maxFailures=8 --conf spark.yarn.max.executor.failures=15 --conf spark.yarn.executor.failuresValidityInterval=1h
–conf spark.speculation=false --conf spark.executor.extraJavaOptions=" -XX:+UseG1GC "
–conf “spark.driver.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties”
./graphx-1.0-SNAPSHOT.jar

### 如何在虚拟机 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、付费专栏及课程。

余额充值