本文介绍 Jar 类型的 Activity 配置,用于在 Pipeline 中执行 Spark JAR 包任务。
Jar Activity 提交并运行 Spark JAR 包,适用于使用 Scala 或 Java 编写的高性能批处理任务。
适用场景:
- name: exec_jar_job type: jar source: TOS path: tos://dmp-bucket/jars/etl-app-1.0.jar engineType: emr_serverless_spark engineQueue: 公共队列-Default mainClass: com.example.ETLJob sparkConf: - key: serverless.spark.access.key value: '{{ak}}' - key: serverless.spark.secret.key value: '{{sk}}' - key: spark.executor.memory value: "4g" - key: spark.executor.instances value: "10" - key: spark.executor.cores value: "2" - key: spark.sql.shuffle.partitions value: "200" arguments: - "--biz_date" - "{{pipeline.params.biz_date}}" - "--region" - "cn-beijing" extraResources: - source: TOS path: tos://dmp-bucket/jars/common-udf.jar - source: RESOURCE path: /workspace/resources/connector-sqlserver.resource.yaml retryPolicy: maxRetries: 2 minRetryIntervalSeconds: 120 timeoutSeconds: 7200 retryOnTimeout: true position: x: 200 y: 100
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | 固定为 |
| Enum | 是 | JAR 文件来源: |
| String | 是 | JAR 文件路径 |
| Enum | 是 | 固定为 |
| String | 是 | 计算队列名称 |
| String | 是 | JAR 的入口类(全限定名) |
| Array | 否 | Spark 配置参数列表 |
| Array | 否 | 程序运行参数 |
| Array | 否 | 额外依赖资源 |
Spark 配置参数以 key-value 数组形式定义,对应 Spark 的 --conf 参数:
sparkConf: - key: spark.executor.memory value: "4g" - key: spark.executor.instances value: "10" - key: spark.executor.cores value: "2"
可配置任务中常见的一些 spark conf 参数,如常用的 Driver 内存分配参数spark.driver.memory、CPU 核心数spark.driver.cores等等。
注意
EMR Serverless Spark Jar 任务访问 TOS 资源时,需进行 TOS 鉴权操作,详见 TOS 权限配置。因此您必须在 Conf 参数中增加有权限访问 TOS 存储桶的账号 AK/SK 信息。具体信息您可进入火山引擎,访问控制台的密钥管理界面,复制 Access key ID、 Secret Access Key 信息。如果是子用户,请联系主账号获取密钥。详见 AK 秘钥管理。
单行编辑模式填写示例如下:
其中秘钥 AK/SK 这类敏感信息,支持您以自定义项目参数形式,进行加密配置,Value 配置方式如{{AK}}、{{SK}}。具体加密操作详见参数信息设置。
程序运行参数以字符串数组形式传入,对应 Spark -- 之后的应用参数:
arguments: - "--biz_date" - "{{pipeline.params.biz_date}}" - "--region" - cn-beijing - "--mode" - "full"
参数值支持引用 Pipeline 参数和变量:
引用类型 | 语法 | 示例 |
|---|---|---|
Pipeline 参数 |
|
|
项目参数 |
|
|
Pipeline 变量 |
|
|
额外依赖资源列表,用于加载 UDF JAR、配置文件或其他辅助资源:
extraResources: - source: TOS path: tos://bucket/common-udf.jar - source: RESOURCE path: /workspace/resources/connector.resource.yaml
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Enum | 是 | 资源来源: |
| String | 是 | 资源文件路径 |
source 值 | 说明 | 典型用法 |
|---|---|---|
| 火山引擎对象存储 | 构建产物上传到 TOS 后引用(推荐用于生产环境)。 |
| 资源中心 | 引用资源中心注册的 YAML 资源描述文件。 |
建议 | 说明 |
|---|---|
生产环境使用 TOS | JAR 包通过 CI/CD 构建后上传到 TOS,保证版本可追溯。 |
合理配置 Spark 参数 | 根据数据量和计算复杂度调整 executor 数量和内存。 |
设置超时 | Jar 任务通常运行时间较长,务必配置 |
分离依赖 | 通用 UDF 放入 extraResources 而非打入主 JAR,减少构建体积。 |
使用 arguments 传参 | 不要在代码中硬编码日期和环境信息,通过 arguments 注入。 |