spark-运行 jar 包

本文详细介绍如何使用spark-submit命令提交并执行jar包,包括参数说明及实例演示。涵盖master地址、部署模式、主类、应用程序名称等关键参数,以及如何设置内存、核数等资源。

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

spark jar 本非方式运行

首先我们通过帮助命令来看spark 如何提交执行jar包
spark-submit --help

 

spark-submit 详细参数说明

--master     master 的地址,提交任务到哪里执行,例如 spark://host:port,  yarn,  local
--deploy-mode    在本地 (client) 启动 driver 或在 cluster 上启动,默认是 client
--class  应用程序的主类,仅针对 java 或 scala 应用
--name   应用程序的名称
--jars   用逗号分隔的本地 jar 包,设置后,这些 jar 将包含在 driver 和 executor 的 classpath 下
--packages   包含在driver 和executor 的 classpath 中的 jar 的 maven 坐标
--exclude-packages   为了避免冲突 而指定不包含的 package
--repositories   远程 repository
--conf PROP=VALUE   指定 spark 配置属性的值,例如 -conf spark.executor.extraJavaOptions="-XX:MaxPermSize=256m"
--properties-file    加载的配置文件,默认为 conf/spark-defaults.conf
--driver-memory  Driver内存,默认 1G
--driver-java-options    传给 driver 的额外的 Java 选项
--driver-library-path    传给 driver 的额外的库路径
--driver-class-path  传给 driver 的额外的类路径
--driver-cores   Driver 的核数,默认是1。在 yarn 或者 standalone 下使用
--executor-memory    每个 executor 的内存,默认是1G
--total-executor-cores   所有 executor 总共的核数。仅仅在 mesos 或者 standalone 下使用
--num-executors  启动的 executor 数量。默认为2。在 yarn 下使用
--executor-core  每个 executor 的核数。在yarn或者standalone下使用

通过帮助文档我们可以知道启动 spark java jar 包的命令如下

spark-submit --master local --name MyWordCount --class com.river.WordCountDemon ~/Downloads/spark-demon-1.0-SNAPSHOT.jar ~/hadoop/spark/wordcount/text.txt

文档内容

hello frank
hello lucy
do you know that I miss you so much
long long age I know you , you know me

看到结果

(long,2)
(you,4)
(that,1)
(do,1)
(I,2)
(know,3)
(hello,2)
(age,1)
(so,1)
(frank,1)
(,,1)
(lucy,1)
(much,1)
(miss,1)
(me,1)

### 回答1: 可以使用spark-submit命令来运行jar,语法如下: ``` spark-submit --class <main-class> --master <master-url> <application-jar> <arguments> ``` 其中,`<main-class>`是应用程序的入口类,`<master-url>`是Spark集群的URL,`<application-jar>`是应用程序的jar路径,`<arguments>`是传递给应用程序的参数。 例如: ``` spark-submit --class com.example.MyApp --master spark://localhost:7077 myapp.jar arg1 arg2 arg3 ``` 在这个例子中,`com.example.MyApp`是应用程序的入口类,`spark://localhost:7077`是Spark集群的URL,`myapp.jar`是应用程序的jar路径,`arg1 arg2 arg3`是传递给应用程序的参数。 ### 回答2: Spark-submit是一个用于将应用程序提交到Spark集群的命令行工具,可以提交Scala、Java和Python等语言编写的应用程序。运行jarspark-submit的一种方式,jar是Java语言下的一种可执行模块,含了应用程序的依赖以及编译后的字节码。 一般来说,使用spark-submit运行jar,需要以下步骤: 1. 编写Spark应用程序,并编译成可执行的jar。 2. 配置Spark集群的参数。可以通过在提交jar时通过spark-submit的参数来指定,如:--master,--deploy-mode,--executor-memory等。 3. 编写启动脚本。在运行spark-submit之前,需要编写启动脚本,其中含了如何启动Spark集群的命令,以及如何提交应用程序的命令。 4. 运行spark-submit命令。在启动脚本中,使用spark-submit命令来提交应用程序,语法如下: ``` $SPARK_HOME/bin/spark-submit --class [class] [options] [jar file] [args] ``` 其中: --class:指定主类名称。 [options]:指定一些参数,例如,--master,--deploy-mode,--executor-memory等。 [jar file]:指定jar的路径。 [args]:指定应用程序运行时的参数,由应用程序自行解析和使用。 例如: ``` $SPARK_HOME/bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --executor-memory 1g --num-executors 3 $SPARK_HOME/examples/jars/spark-examples_2.11-2.3.1.jar 10 ``` 这个命令会提交SparkPi应用程序到YARN集群上,并使用3个executor和1G内存执行SparkPi,参数10会传给应用程序。 总之,运行jarspark-submit的一种常用方式,需要事先编译好可执行的jar,并通过spark-submit命令提交到Spark集群上。在提交时需要配置一些参数,例如主类、集群模式、executor数量和内存等。 ### 回答3: Spark是一个用于大数据处理的开源分布式计算框架,它提供了很多工具来帮助开发者进行数据处理和分析。spark-submit是其中一个很重要的工具,可以用来运行和提交Spark应用程序,其中括打好的jar,这个工具可以保证我们的应用程序可以在分布式集群中运行spark-submit的使用非常简单,只需要在终端中输入spark-submit命令,紧接着就是一大堆可选参数和必要参数了。其中最基本的命令格式如下: spark-submit [参数] [应用程序jar路径] [参数值] 下面是一些spark-submit参数的详细解释: 1. --master:指定运行模式,可以是local、standalone、mesos、yarn等,在本地模式下使用local选项。 2. --deploy-mode:指定部署模式,分为client和cluster模式,默认是client模式,可以在yarn模式下使用cluster选项。 3. --class:指定应用程序的入口类。 4. --conf:指定配置文件,如spark.executor.memory、spark.driver.memory等。 5. --executor-memory:指定每个Executor进程的内存大小。 6. --num-executors:指定启动的Executor进程数。 7. --executor-cores:指定每个Executor进程所占用的CPU核数。 8. --name:指定应用程序的名称。 当我们使用spark-submit提交应用程序时,需要指定应用程序的jar路径,一般情况下我们可以在Eclipse或者IntelliJ IDEA等IDE中将应用程序打成一个jar,然后将其上传到服务器中。使用spark-submit启动应用程序时,应用程序的jar路径可以使用相对路径或者绝对路径。 总之,spark-submit是一个非常强大的工具,可以帮助开发者轻松地提交、运行Spark应用程序。开发者可以根据自己的需求灵活选择参数和修改配置信息,以获取更好的运行效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值