本地需已安装JDK8 / JDK17,并已设置JAVA_HOME环境变量。
echo $JAVA_HOME //查询JAVA_HOME目录位置 java -version //查看版本
cd /工具包路径/ tar -xzf serverless-spark-submit-1.0.3.tar.gz
文件目录的结构如下。
export SPARK_HOME=/工具包路径/serverless-spark-submit-1.0.3 export PATH=$SPARK_HOME/bin:$PATH
spark-submit --help
在提交之前,请用户根据实际情况修改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
说明
命令行指定的参数优先级更高,同时配置的情况下,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
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任务的火山引擎地域。
|
--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文件。 |