spark on yarn : job提交重要参数说明
spark-submit
--master yarn-cluster ##使用集群调度模式(一般使用这个参数)
--queue XXXX ## job提交队列
--num-executors 10 # executor 数量
--executor-cores 4 #设置单个executor能并发执行task数,根据job设置,推荐值2-16 (这里不是指CPU数,集群不限制CPU使用)
--driver-memory 2g # driver的内存大小,推荐值2-6G,不宜太大
--executor-memory 5g #单个executor的内存大小,根据job需求以及并发数设置,最大不要超过30G
--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.cores.max=100 (这个参数在spark on yarn 上没用)
--conf spark.hadoop.mapreduce.input.fileinputformat.split.minsize=134217728 #调整split文件大小
执行时需要传入的参数说明
Usage: spark-submit [options] <app jar | python file> [app options]
参数名称 | 含义 |
--master MASTER_URL | 可以是spark://host:port, mesos://host:port, yarn, yarn-cluster,yarn-client, local |
--deploy-mode DEPLOY_MODE | Driver程序运行的地方,client或者cluster |
--class CLASS_NAME | 主类名称,含包名 |
--name NAME | Application名称 |
--jars JARS | Driver依赖的第三方jar包 |
--py-files PY_FILES | 用逗号隔开的放置在Python应用程序PYTHONPATH上的.zip, .egg, .py文件列表 |
--files FILES | 用逗号隔开的要放置在每个executor工作目录的文件列表 |
--properties-file FILE | 设置应用程序属性的文件路径,默认是conf/spark-defaults.conf |
--driver-memory MEM | Driver程序使用内存大小 |
--driver-java-options | |
--driver-library-path | Driver程序的库路径 |
--driver-class-path | Driver程序的类路径 |
--executor-memory MEM | executor内存大小,默认1G |
--driver-cores NUM | Driver程序的使用CPU个数,仅限于Spark Alone模式 |
--supervise | 失败后是否重启Driver,仅限于Spark Alone模式 |
--total-executor-cores NUM | executor使用的总核数,仅限于Spark Alone、Spark on Mesos模式 |
--executor-cores NUM | 每个executor使用的内核数,默认为1,仅限于Spark on Yarn模式 |
--queue QUEUE_NAME | 提交应用程序给哪个YARN的队列,默认是default队列,仅限于Spark on Yarn模式 |
--num-executors NUM | 启动的executor数量,默认是2个,仅限于Spark on Yarn模式 |
--archives ARCHIVES | 仅限于Spark on Yarn模式 |