spark-submit中的参数调优

spark-submit中的参数

参数名				格式				参数说明
--master				MASTER_URL		如spark://host:port, mesos://host:port, yarn,  yarn-cluster,yarn-client, local
--deploy-mode			DEPLOY_MODE		Client或者master,默认是client
--class				CLASS_NAME		应用程序的主类
--name				NAME			应用程序的名称
--jars				JARS				逗号分隔的本地jar包,包含在driver和executor的classpath下
--packages								包含在driver和executor的classpath下的jar包逗号分隔的”groupId:artifactId:version”列表
--exclude-packages						用逗号分隔的”groupId:artifactId”列表
--repositories							逗号分隔的远程仓库
--py-files				PY_FILES			逗号分隔的”.zip”,”.egg”或者“.py”文件,这些文件放在python app的PYTHONPATH下面
--files				FILES			逗号分隔的文件,这些文件放在每个executor的工作目录下面
--conf				PROP=VALUE		固定的spark配置属性,默认是conf/spark-defaults.conf
--properties-file			FILE				加载额外属性的文件
--driver-memory			MEM				Driver内存,默认1G
--driver-java-options						传给driver的额外的Java选项
--driver-library-path						传给driver的额外的库路径
--driver-class-path						传给driver的额外的类路径
--executor-memory		MEM				每个executor的内存,默认是1G
--proxy-user			NAME			模拟提交应用程序的用户
--driver-cores			NUM				Driver的核数,默认是1。这个参数仅仅在standalone集群deploy模式下使用
--supervise							Driver失败时,重启driver。在mesos或者standalone下使用
--verbose								打印debug信息
--total-executor-cores		NUM				所有executor总共的核数。仅仅在mesos或者standalone下使用
--executor-core			NUM				每个executor的核数。在yarn或者standalone下使用
--driver-cores			NUM				Driver的核数,默认是1。在yarn集群模式下使用
--queue				QUEUE_NAME		队列名称。在yarn下使用
--num-executors		NUM				启动的executor数量。默认为2。在yarn下使用

其中比较重要的是:

executor-cores 每个executor使用的内核数,默认为1
num-executors 启动executor的数量,默认为2
executor-memory executor的内存大小,默认为1G
driver-cores driver使用的内核数,默认为1
driver-memory driver的内存大小,默认为1G
queue 指定了放在哪个队列里执行
spark.default.parallelism
该参数用于设置每个stage的默认task数量。这个参数极为重要,

如果不设置可能会直接影响你的Spark作业性能

Spark官网建议的设置原则是,设置该参数为num-executors * executor-cores的2~3倍较为合适

spark.storage.memoryFraction 该参数用于设置RDD持久化数据在Executor内存中能占的比例,默认是0.6。也就是说,
默认Executor 60%的内存,可以用来保存持久化的RDD数据。根据你选择的不同的持久化策略,
如果内存不够时,可能数据就不会持久化,或者数据会写入磁盘。
spark.shuffle.memoryFraction 该参数用于设置shuffle过程中一个task拉取到上个stage的task的输出后,
进行聚合操作时能够使用的Executor内存的比例,默认是0.2。也就是说,

Executor默认只有20%的内存用来进行该操作。shuffle操作在进行聚合时,

如果发现使用的内存超出了这个20%的限制,那么多余的数据就会溢写到磁盘文件中去,

此时就会极大地降低性能。

total-executor-cores 所有executor的总核数


参考https://blog.csdn.net/xianpanjia4616/article/details/80945660
https://www.cnblogs.com/haoyy/p/6893943.html

猜你喜欢

转载自blog.csdn.net/fct2001140269/article/details/85341739
今日推荐