spark-submit 指令详解

编写好的Spark程序一般通过Spark-submit指令的方式提交给Spark集群进行具体的任务计算,Spark-submit指令可以指定一些向集群申请资源的参数(也可直接在Spark程序代码中指定,参数生效的优先级最高),在Linux环境下,可通过spark-submit –help 了解spark-submit指令的各种参数说明,截图如下:
spark-submit 指令详解

案例(Python任务提交):
spark-submit –master spark://192.168.1.10:7077 –name router_app –total-executor-cores 8 –executor-memory 4g router_inout.py

常用的重要参数详解:
1) –master MASTER_URL: 指定要连接的集群模式(集群资源管理器)
standalone模式: spark://host:port, 如:spark://192.168.1.10:7077
Spark On Mesos模式 : mesos://host:port
Spark On YARN模式: yarn://host:port
本地模式:local

2) – deploy-mode DEPLOY_MODE : 指定任务的提交方式(client 和cluster)
client: 本地客户端模式(默认方式),一般会在集群主节点安装客户端
cluster: 集群工作节点模式
任务最终都会提交给主节点处理,所以在指定任务提交方式时,考虑本地客户端和集群工作节点对主节点的网络开销问题即可。

3)–name appName :设置任务的名称,方便在webUI查看

4)–py-files PY_FILES :加载Python外部依赖文件

5)–driver-memory MEM:设置driver的运行内存(占用客户端内存,用于通信及调度开销,默认为1G)

6)–executor-memory MEM:设置每一个executor的运行内存(占用工作节点内存,主要用于执行任务的内存开销),executor代表work节点上的一个进程。

7)–total-executor-cores NUM:设置任务占用的总CPU核数(即任务的并发量),由主节点指定各个工作节点CPU的使用数。
注意:该参数选项只在Spark standalone and Mesos 模式下有效

8)–executor-cores NUM:设置执行任务的每一个executor的CPU核数(yarn模式有效,默认为1)或者工作节点的总CPU核数(standalone模式有效)

9)–num-executors NUM:设置任务的executor进程数(yarn模式下有效)

10)–conf PROP=VALUE:设置Spark的属性参数
–conf spark.default.parallelism=1000 设置RDD分区大小,系统默认为200
–conf spark.storage.memoryFraction=0.5 设置内存分配大小(存储),系统默认为0.6
–conf spark.shuffle.memoryFraction=0.3 设置shuffle上限内存空间,系统默认为0.2