Spark on yarn 提交应用的方式

本文将详细探讨如何使用Spark在YARN上提交应用程序,重点在于理解提交过程中的命令选项,例如使用--verbose或-v参数来获取调试信息。

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

Spark on yarn 提交应用的方式

通过spark-submit –help可以看到spark-submit的三种用法。
Usage: spark-submit [options] <app jar | python file> [app arguments]
2、根据job的id杀死某个job,仅支持在standalone和Mesos模式下使用
Usage: spark-submit --kill [submission ID] --master [spark://...]
3、查看某个job的状态,仅支持在standalone和Mesos模式下使用
Usage: spark-submit --status [submission ID] --master [spark://...]

在spark on yarn模式下,仅使用第一种。提交job的常用选项及说明:

--master MASTER_URL
#指定spark应用的运行模式可选项包括spark://host:port, mesos://host:port, yarn, local.若以spark on yarn模式运行应用则需选择yarn

--deploy-mode DEPLOY_MODE #设定部署应用的方式可选项有:client和cluster
在client模式下,driver进程会运行在本地,可以在程序运行中进行交互,一般在实验环境中使用,也是默认的部署形式,spark-shell就是以这个模式运行的。
在cluster模式下,主节点会随机选取一个slave节点启动driver进程,不占用master节点资源,适合在生产环境使用。

--class CLASS_NAME #指定jar包的main函数所在类(不写后缀,适用于java和scala编写的应用)。比如:com.foo.Main

--name NAME #可以为你的应用在运行时指定一个个性化的名字,这样在ui中就能很容易的找到你的程序啦,比如 –name myAppilication

--jars JARS #指定程序运行需要的额外的依赖jar包,比如:--jars /home/Hadoop/myjar.jar

--packages #以maven坐标的形式引入jar依赖,坐标之间以逗号分隔。会自动搜索本地maven仓库、maven中央仓库或者以 --repositories指定的其它远程仓库。坐标的格式为:groupId:artifactId:version.

--exclude-packages #以逗号分隔的groupId:artifactId,用来排除一些依赖,在解决依赖冲突时比较有用,一般作为--packages 的修正使用。

--repositories #以逗号分隔的远程maven仓库列表,和--packages.配合使用。

--conf PROP=VALUE #指定Spark的配置属性。
常用的属性及配置如下:
--conf spark.storage.memoryFraction=0.1 #设置内存用来作为cache的比例,0.1 为10% (默认为0.6),如果不用内存cache,设置为0

--conf spark.hadoop.fs.hdfs.impl.disable.cache=true #禁止使用内存cache
--conf spark.default.parallelism=400 #控制Spark中的分布式shuffle过程默认使用的task数量,默认Others: total number of cores on all executor nodes or 2, whichever is larger,我们建议为每一个CPU核(core)分配2-3个任务
--conf spark.hadoop.mapreduce.input.fileinputformat.split.minsize=134217728 #调整split文件大小
--conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" #打印gc信息,在应用调优时比较有用
其它配置可以在spark的官网查阅:
http://spark.apache.org/docs/latest/configuration.html

--properties-file FILE #可以将属性配置写到一个文本中用这个选项加载,默认加载的是conf/spark-defaults.conf.
这里要注意:
Spark的配置属性优先级为:--conf配置的属性>-- properties-file指定的配置文件中的属性>conf/spark-defaults.conf。优先级高的属性会覆盖优先级低的。

--driver-memory MEM #配置driver的最大使用内存,一般为2g-8g,默认1g,不宜太大

--driver-java-options #用于添加一些Java虚拟机参数,比如:

--executor-memory MEM #分配给每个executor的内存量默认1g,一般不要超过30g.

--verbose, -v #打印额外的debug 输出


--version, #打印Spark版本号

--executor-cores NUM
#设置单个executor能并发执行task数,根据job设置,推荐值2-16 (这里不是指CPU数,集群不限制CPU使用)默认为1

--num-executors NUM
#设置executor的数量,默认启动2个.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值