Spark之——使用spark-submit部署应用(基于Spark 1.X)

转载请注明出处:https://blog.csdn.net/l1028386804/article/details/80738103

例1: 提交 Python 应用

bin/spark-submit my_script.py

如果在调用 spark-submit 时除了脚本或 JAR 包的名字之外没有别的参数,那么这个 Spark 程序只会在本地执行。 当我们希望将应用提交到 Spark 独立集群上的时候,可以将独立集群的地址和希望启动的每个执行器进程的大小作为附加标记提供,如例2所示。
例2: 提交应用时添加附加参数

bin/spark-submit --master spark://host:7077 --executor-memory 10g my_script.py
  • --master 标记指定要连接的集群 URL;在这个示例中, spark:// 表示集群使用独立模式。稍后会讨论其他的 URL 类型。

spark-submit的--master标记可以接收的值如下:

  • spark://host:port: 连接到指定端口的 Spark 独立集群上。默认情况下 Spark 独立主节点使用7077 端口
  • mesos://host:port: 连接到指定端口的 Mesos 集群上。默认情况下 Mesos 主节点监听 5050 端口
  • yarn: 连接到一个 YARN 集群。当在 YARN 上运行时,需要设置环境变量 HADOOP_CONF_DIR 指向 Hadoop 配置目录,以获取集群信息
  • local:运行本地模式,使用单核
  • local[N]:运行本地模式,使用 N 个核心
  • local[*]:运行本地模式,使用尽可能多的核心

除了集群 URL, spark-submit 还提供了各种选项,可以让你控制应用每次运行的各项细节。这些选项主要分为两类。 第一类是调度信息,比如你希望为作业申请的资源量(如例2 所示)。第二类是应用的运行时依赖,比如需要部署到所有工作节点上的库和文件。
spark-submit 的一般格式见例3。

例3: spark-submit 的一般格式

bin/spark-submit [options] <app jar | python file> [app options]
  • [options] 是要传给 spark-submit 的标记列表。你可以运行 spark-submit --help 列出所有可以接收的标记。
  • <app jar | python File> 表示包含应用入口的 JAR 包或 Python 脚本。
  • [app options] 是传给你的应用的选项。如果你的程序要处理传给 main() 方法的参数,它只会得到 [app options] 对应的标记,不会得到 spark-submit 的标记。

spark-submit的一些常见标记如下:

  • --master:表示要连接的集群管理器(见spark-submit的--master标记可以接收的值)。
  • --deploy-mode:选择在本地(客户端“client”)启动驱动器程序,还是在集群中的一台工作节点机器(集群“cluster”)上启动。在客户端模式下, spark-submit 会将驱动器程序运行在 spark-submit 被调用的这台机器上。在集群模式下,驱动器程序会被传输并执行于集群的一个工作节点上。默认是本地模式
  • --class 运行 Java 或 Scala 程序时应用的主类
  • --name 应用的显示名,会显示在 Spark 的网页用户界面中
  • --jars 需要上传并放到应用的 CLASSPATH 中的 JAR 包的列表。如果应用依赖于少量第三方的 JAR 包,可以把它们放在这个参数里
  • --files 需要放到应用工作目录中的文件的列表。这个参数一般用来放需要分发到各节点的数据文件
  • --py-files 需要添加到 PYTHONPATH 中的文件的列表。其中可以包含 .py、 .egg 以及 .zip 文件
  • --executor-memory 执行器进程使用的内存量,以字节为单位。可以使用后缀指定更大的单位,比如“512m”(512 MB)或“15g”(15 GB)
  • --driver-memory 驱动器进程使用的内存量,以字节为单位。可以使用后缀指定更大的单位,比如“512m”(512 MB)或“15g”(15 GB)

spark-submit 还允许通过 --conf prop=value 标记设置任意的 SparkConf 配置选项,也可以使用 --properties-File 指定一个包含键值对的属性文件。
例 4 展示了一些使用各种选项调用 spark-submit 的例子,这些调用语句都比较长。
例 4: 使用各种选项调用 spark-submit

# 使用独立集群模式提交Java应用
$ ./bin/spark-submit \
--master spark://hostname:7077 \
--deploy-mode cluster \
--class com.databricks.examples.SparkExample \
--name "Example Program" \
--jars dep1.jar,dep2.jar,dep3.jar \
--total-executor-cores 300 \
--executor-memory 10g \
myApp.jar "options" "to your application" "go here"
# 使用YARN客户端模式提交Python应用
$ export HADOP_CONF_DIR=/opt/hadoop/conf
$ ./bin/spark-submit \
--master yarn \
--py-files somelib-1.2.egg,otherlib-4.4.zip,other-file.py \
--deploy-mode client \
--name "Example Program" \在集群上运行Spark | 107
--queue exampleQueue \
--num-executors 40 \
--executor-memory 10g \
my_script.py "options" "to your application" "go here"

猜你喜欢

转载自blog.csdn.net/l1028386804/article/details/80738103
今日推荐