You need to enable JavaScript to run this app.
导航
Spark-submit工具使用说明
最近更新时间:2024.10.17 20:09:18首次发布时间:2024.10.17 20:09:18

环境要求

本地需已安装JDK8 / JDK17,并已设置JAVA_HOME环境变量。

echo $JAVA_HOME //查询JAVA_HOME目录位置
java -version //查看版本

安装工具包

  1. 单击点击此处下载工具包。
  2. 执行以下命令,将工具包解压到本地的指定目录。
cd /工具包路径/
tar -xzf serverless-spark-submit-1.0.3.tar.gz

文件目录的结构如下。
Image

  1. 配置环境变量。
export SPARK_HOME=/工具包路径/serverless-spark-submit-1.0.3
export PATH=$SPARK_HOME/bin:$PATH
  1. 检查命令安装是否成功。
spark-submit --help

Image

使用命令提交

在提交之前,请用户根据实际情况修改conf文件夹下spark-defaults.conf文件中的如下参数:

spark.app.name=serverless-spark-jar   #修改为您的的作业名称,也可在命令行提交时指定
serverless.spark.region=cn-beijing    #修改为您需要访问的Serverless Spark产品Region
serverless.spark.endpoint=https://open.volcengineapi.com   #固定值,暂无需修改
serverless.spark.service=emr_serverless   #固定值,暂无需修改
serverless.spark.access.key=YOUR_ACCESS_KEY   #修改为您的账号Access Key
serverless.spark.secret.key=YOUR_SECRET_KEY   #修改为您的账号Secret Key
serverless.spark.tos.bucket=YOUR_TOS_BECKET_NAME   #修改为您的TOS桶名,请确保您的AK/SK对此TOS桶有访问权限,该桶将被用于上传本地jar等依赖文件,这些文件会在Spark运行时被加载。

说明

文件中#及其后面部分为注释,用户修改完参数后需删除该部分注释。

极简版提交示例 (已配置上述参数)

spark-submit --class ServerlessJarDemo spark-jar-demo-1.0-SNAPSHOT.jar arg1 arg2

示例1:提交本地Jar包任务

说明

命令行指定的参数优先级更高,同时配置的情况下,spark-defaults.conf文件中的参数将被覆盖。

spark-submit --name ServerlessJarDemo --async --jars /path/to/dependency1.jar --region cn-beijng --access-key-id your-access-key --access-key-secret your-secret-key --tos-bucket your-tos-bucket --class your-main-class /path/to/primary-dependency.jar arg1 arg2

示例2:提交TOS Jar包任务

spark-submit --name ServerlessJarDemo --async --jars tos://your-bucket/dependency1.jar --region cn-beijng --access-key-id your-access-key --access-key-secret your-secret-key --class your-main-class tos://your-bucket/primary-dependency.jar arg1 arg2

参数说明

命令行的参数具体说明如下:

命令行参数名

是否必须

默认值

对应spark-defaults.conf参数值

说明

--name

spark.app.name

任务名称

--class

tqs.spark.jar.class

任务执行的主类,不填写时会从jar包中尝试获取Main Class。

--region

serverless.spark.region

执行Serverless spark任务的火山引擎地域。

  • 华北:cn-beijing
  • 华东:cn-shanghai
  • 华南:cn-guangzhou
  • 柔佛:ap-southeast-1

--access-key-id

serverless.spark.access.key

您的账号Access Key

--access-key-secret

serverless.spark.secret.key

您的账号Secret Key

--session-token

serverless.spark.session.token

在Assume Role场景下,需要填写session token

--tos-bucket

serverless.spark.tos.bucket

指定一个tos桶,用来将您本地的jar文件上传到此桶中,Spark任务启动时将从该tos桶加载jar文件。如您的文件已存在tos桶中,则此参数可不填写。

--conf

Spark运行时参数,可参考:Spark 配置官网文档

--properties-file

$SPARK_HOME/conf/spark-defaults.conf

spark.properties

spark配置文件所在路径,默认为$SPARK_HOME/conf/spark-defaults.conf,即上述安装包所在位置下conf/spark-defaults.conf

--driver-memroy

16g

spark.driver.memory

Driver的内存大小

--driver-java-options

spark.driver.extraJavaOptions

Driver JVM的参数

--driver-class-path

spark.driver.extraClassPath

Driver 的额外class path

--executor-memory

16g

spark.executor.memory

Executor的内存大小

--executor-cores

4

spark.executor.cores

Executor的核数

--num-executors

1

spark.executor.instances

Executor的个数

--queue

las.execute.queuename

任务运行的队列

--async

若指定,则spark-submit命令将在任务成功提交后退出,不会等待任务运行结束。

--jars

spark.jars

逗号分隔的jar文件路径,Spark运行时将加载这些jar文件,可支持本地文件或tos文件。

--archives

spark.archives

逗号分隔的archive文件,将被加载到Spark运行时的工作目录下,可支持本地文件或tos文件。

--files

spark.files

逗号分隔的其他文件,将被加载到Spark运行时的工作目录下,可支持本地文件或tos文件。