You need to enable JavaScript to run this app.
文档中心
E-MapReduce

E-MapReduce

复制全文
下载 pdf
Serverless Spark 作业
SparkJar 作业
复制全文
下载 pdf
SparkJar 作业

为满足用户定制化数据查询分析的需求,EMR Serverless Spark 提供了可视化提交 SparkJar 作业的方式。用户可以编写 Java 代码,提交 SparkJar,完成分布式数据处理。本文为您介绍多种提交 SparkJar 作业的操作步骤。

前提条件
  • 已创建一个具有通用资源的资源队列或公共队列。具体操作可参考:创建队列。拥有队列 Developer/Admin 权限。
  • 已将作业文件、依赖 Jar 包及依赖 File 上传至当前 Serverless 队列同区域的 TOS 桶中。

提交作业

提交作业:通过控制台

  1. 登录 EMR Serverless 控制台

  2. 在顶部菜单栏中,根据实际场景,下拉选择地域和项目空间。

  3. 单击 作业中心 > 作业管理或作业实例进入创建作业页面
    Image

  4. 配置 Spark JAR 作业的参数。

    1. 配置作业基本信息,参数说明见下表。
      Image

      参数

      配置操作

      作业名称

      本次作业的名称,创建后不可更改。

      作业类型

      创建的作业的类型。

      执行资源

      执行作业使用的EMR资源,分资源类型下拉框和队列/项目下拉框。
      可选择具体资源,支持通过名称或ID搜索。

      开发模式

      • UI:通过可视化界面提交作业内容。
      • JSON:通过 JSON 方式提交作业内容,更适合批量配置或复用已有配置。例如:
      {
       "JobType": "SparkJar",
       "ServerlessSparkRuntimeVersion": "spark4.1",
       "MainClass": "com.example.MainClass",
       "MainApplicationFile": "tos://<your-bucket>/<path>/your-app.jar",
       "SparkConf": {
       "serverless.emr.access.key": "<your-ak>",
       "serverless.emr.secret.key": "<your-sk>",
       "emr.execute.resource.type": "EMR_Serverless",
       "tqs.query.engine.type": "Spark"
       },
       "Jars": [
       "tos://<your-bucket>/<path>/extra-dependency.jar"
       ],
       "Files": [
       "tos://<your-bucket>/<path>/dependency-file"
       ],
       "Archives": [],
       "MainArguments": []
      }
      
    2. 配置作业内容,不同开发模式下的参数入口不一致,参数说明可参见下表。

      UI 模式参数

      JSON 模式参数

      是否必填

      说明

      EngineRuntime

      ServerlessSparkRuntimeVersion

      Y

      选择 Spark 计算引擎环境,支持选择 Spark 版本及对应的 Java Runtime 或 Bolt Runtime。

      • Java Runtime:标准的 Java 运行时。
      • Bolt Runtime:火山引擎自研的原生内核加速引擎,可提升 Spark、Presto 等作业执行速度。详细介绍请参见Spark on Native 引擎:Bolt

      注意

      作业的 EngineRuntime 参数优先级高于 default 计算组和通用计算组参数。

      Main 方法

      MainClass

      Y

      SparkJar 作业运行的主类。

      主任务文件

      MainApplicationFile

      Y

      SparkJar 作业的主任务 Jar 文件。
      需上传至 TOS 并在此指定路径。

      依赖 Jar

      Jars

      N

      主 JAR 文件运行时依赖的第三方或自定义 JAR 包,Executor 执行任务时会自动加载。
      需上传至 TOS 并在此指定路径。

      依赖 File 资源

      Files

      N

      作业的依赖资源文件。
      需上传至 TOS 并在此指定路径。

      依赖 Archive

      Archives

      N

      作业的依赖 Archive。
      需上传至 TOS 并在此指定路径。

      Spark 参数(Spark Conf)

      SparkConf

      N

      作业的环境变量及使用的资源等。
      例如"spark.emr.connect.engine.allow.other.users": true

      注意

      UI 模式下,EngineRuntime 参数以选项的形式传入,若此处提交 EngineRuntime 参数,不会生效。

      Main 参数 (Main conf)

      MainArguments

      N

      填写作业主类运行时,需要的输入参数。

      存储路径挂载

      JSON模式暂不支持此参数

      N

      设置当前作业可能需要挂载的存储路径,详情请参见存储挂载概述

提交作业:通过 SDK

目前 EMR Serverless 支持 Java 和 Python 两类 SDK。Java SDK 使用方式请参考:Java Query SDK;Python SDK 使用方式请参考:Python Query SDK

提交作业:通过 Spark Submit

使用方式请参考文档:Spark-submit 工具使用说明

提交作业:通过参数添加依赖

在提交作业时,可以为作业添加依赖,支持添加 Jar 和 Python 包等,参数列表如下:

参数名

参数含义

参数用法

las.spark.jar.depend.jars

作业依赖的Jar包

[{"fileName": "tos://bucketName/xxx.jar"},{"fileName": "tos://bucketName/yyy.jar"}]

las.spark.jar.depend.files

作业依赖的文件

[{"fileName": "tos://bucketName/xxx.csv"},{"fileName": "tos://bucketName/yyy.csv"}]

las.spark.jar.depend.archives

作业依赖的归档文件

[{"fileName": "tos://bucketName/xxx.zip"}, {"fileName": "tos://bucketName/yyy.zip"}]

las.spark.jar.depend.pyFiles

作业依赖的python文件

[{"fileName": "tos://bucketName/xxx.zip"},{"fileName": "tos://bucketName/yyy.zip"}]

进阶操作:如何读写库表

对于 SparkJar 作业,默认无法读写用户账户下 LAS 的库表,如果您想在 SparkJar 作业中,通过 Spark SQL/Table Api 进行库表的读写,需要在 Spark 参数中额外设置:
Image

参数名称

参数值

serverless.spark.access.key

访问LAS 库表所需的Access Key

serverless.spark.secret.key

访问LAS 库表所需的Secret Key

查看/运行/删除作业

作业创建完成后,您可以在作业列表页面查看所有已创建的作业,并可手动触发作业运行,或者对作业进行编辑修改、删除的操作。
Image

查看与诊断作业实例

在作业提交后,您也可以在 作业中心 > 作业实例 页面查看所有已提交的作业运行实例详情,包括运行状态、作业类型、资源详情、提交人等。
Image

  • 您可以在页面顶部通过实践范围、提交人等过滤条件快速筛选出待查看的作业实例,查看作业实例详情。
  • 对于运行失败的作业,您可单击“日志”,查看作业运行详细日志,进行作业失败原因定位;您也可以使用 “AI 诊断” 功能,进行作业智能诊断。
最近更新时间:2026.08.03 10:13:16
这个页面对您有帮助吗?
有用
有用
无用
无用