Pyspark学习笔记(二)--- spark-submit命令

2021-05-10 11:08:44 浏览数 (1)

Pyspark学习笔记(二)--- spark-submit命令

非交互式应用程序,通过spark-submit命令提交任务,官方讲解如下链接所示

http://spark.apache.org/docs/latest/submitting-applications.html#submitting-applications,

spark-submit脚本位于spark安装目录下的bin文件夹内,该命令利用可重用的模块形式编写脚本,

以编程方式提交任务到Spark上去,并可以支持不同的集群管理器和Spark支持的部署模式。

通用的spark-submit命令为

代码语言:javascript复制
${SPARK_HOME}/bin/spark-submit 

  --class <main-class> 

  --master <master-url> 

  --deploy-mode <deploy-mode> 

  --conf <key>=<value> 

  ... # other options

  <application-jar> 

  [application-arguments]

命令行参数

下面逐个介绍这些参数:

● -class: 应用程序的入口点 (e.g. org.apache.spark.examples.SparkPi)

--master:用于设置主结点URL的参数,常见下面四种形式:

http://spark.apache.org/docs/latest/submitting-applications.html#master-urls,

local:用于执行本地机器的代码。即spark进程运行在单机上,还可以选择本地系统中任意数量的CPU内核。

在local指令后面通过local[K]指定本地模式所使用的CPU内核数目,local[*]表示使用系统所有的CPU内核

spark: //host:port:这是一个Spark独立集群的主进程所在的主机地址和所监听的端口号。

mesos: //host:port:这是一个部署在Mesos的Spark集群的主机地址和端口号。

yarn:作为负载均衡器,根据 --deploy-mode 的值,以客户端client或群集模式cluster连接到YARN群集

将基于HADOOP_CONF_DIR或YARN_CONF_DIR变量找到群集位置。

--deploy-mode:决定将驱动程序部署在工作节点(cluster)上还是作为外部客户端(client) 本地部署(默认:client)

--conf: 键值对格式的任意Spark配置属性;对于包含空格的值,将”key = value”括在引号中。

多个配置应作为单独的参数传递。 (例如--conf <key> = <value> --conf <key2> = <value2>

<application-jar> 捆绑jar的路径,包括您的应用程序和所有依赖项

该URL必须在群集内部全局可见, 例如,所有节点上都存在hdfs:// path或file:// path。

[For Python applications, simply pass a .py file in the place of <application-jar> instead of a JAR,

and add Python .zip, .egg or .py files to the search path with --py-files]

[application-arguments] 传递给主类主方法的参数(如果有)

### Other options

--name: 应用程序名称。

注意,创建SparkSession时,如果是以编程方式指定应用程序名称,那么来自命令行的参数会被重写。

--py-files.py,.egg或者.zip文件的逗号分隔列表,包括Python应用程序,这些文件将被交付给每一个执行器来使用。

(这里提供的一般都是依赖性文件需要运行的主应用程序文件,其实只需要新起一行写绝对路径即可,即写到前面的application-jar的位置)

--files: 命令给出一个逗号分隔的文件列表,这些文件将被交付给每一个执行器来使用。

--properties-file:配置文件。它应该有和conf/spark-defaults.conf文件相同的属性设置,也是可读的。

--driver-memory:指定应用程序在驱动程序上分配多少内存的参数。比如1000M,2G。默认值是1024M。

--driver-core: 指定驱动程序的内核数量,默认值为1。(yarn-cluster only)

--exectuor-memory:指定每个executor为应用程序分配多少内存。默认值是1G。

--total-executor-cores : 所有executor总共的核数。仅仅在mesos或者standalone下使用

--executor-core: 每个executor的核数。(Spark standalone and YARN only),在yarn模式中默认值为1

--num-executors: 启动的executor数量。默认为2。(YARN-only)

--queue: 指定资源队列的名称,t (YARN-only)

--help:展示帮助信息和退出。

--verbose:在运行应用程序时打印附加调试信息。

--version:打印Spark版本。

##############################################################################################

更多的参数可以自己使用 --help 查看:

0 人点赞