结构: 命令 + 选项 + 文件 + 参数
基础选项:优先级:代码中配置【程序特有】 > 参数选项【运行模式、程序名称、资源选项】 > 配置文件【公共配置】
-
--master:用于指定程序的运行的模式:Local、Standalone、YARN、Mesos、K8s
- local[N]:使用本地模式,给定N核CPU
- spark://主机名:7077:使用Standalone模式,提交给Master
- yarn:使用YARN集群模式,提交给RM
-
--deploy-mode:决定了Driver进程运行的位置,两种模式:client【默认】、cluster
-
--class:运行某个类,用Python写不用管,用于Java/Scala
-
--name:指定程序的名字,等同于代码中setAppName
-
--jars:指定额外的第三方依赖包,例如读写MySQL,需要MySQL的驱动包
-
--conf:指定一些其他配置--conf key=value, 等同于代码中set方法
Spark程序集群模式运行时会启动两种进程:Driver驱动进程 + Executor计算进程,每种进程运行时都需要资源
Driver资源选项
- --driver-memory:用于指定Driver进程运行时能够使用的内存大小
- --driver-cores:用于指定Driver进程运行时能够使用CPU的核数
- --supervise:用于保证Driver进程安全,故障以后会自动重启
Executor资源选项
-
--executor-memory:用于指定每个Executor能使用的内存数
-
--executor-cores:用于指定每个Executor能使用的CPU核心数
-
--total-executor-cores:用于指定Standalone情况下,所有Executor使用的总CPU核数
-
--num-executors:用于Spark on YARN情况下,指定启动的Executor的个数
-
--queue:用于指定将程序提交到哪个队列中运行