提交申请
spark的bin目录中的spark submit脚本用于在集群上启动应用程序。它可以通过一个统一的接口使用Spark支持的所有集群管理器,这样您就不必特别为每个集群管理器配置应用程序。
捆绑应用程序的依赖项
如果代码依赖于其他项目,则需要将它们与应用程序一起打包,以便将代码分发到Spark集群。为此,创建一个包含代码及其依赖项的程序集jar(或“uber”jar)。sbt和Maven都有汇编插件。创建程序集jar时,将Spark和Hadoop列为提供的依赖项;这些依赖项不需要绑定,因为它们是由集群管理器在运行时提供的。一旦有了一个组装好的jar,就可以在传递jar时调用bin/spark提交脚本,如图所示。
对于Python,可以使用spark-submit的
--py-files
参数增加.py、
.zip
或.egg
文件与应用程序一块被分发。如果依赖多个Python文件,建议将它们打包到.zip
或中.egg
。
使用spark submit启动应用程序
捆绑用户应用程序后,可以使用bin/spark-submit提交脚本启动它。此脚本负责使用Spark及其依赖项设置路径,并且可以支持Spark支持的不同群集管理器和部署模式:
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
spark-submit 参数详解
在将项目打包之后,可能需要将其提交到大数据平台上去跑,这个时候就涉及到脚本处理。这里主要是有关spark的运行任务…一些常用的提交参数配置如下所示:
参数名 |
简介 |
class |
spark程序的主类,仅针对 java 或 scala 应用,注意用 全包名+类名 |
nam |