本文介绍 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: 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.parameters.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 minRetryIntervalMillis: 120000 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"
配置项 | 说明 | 示例值 |
|---|---|---|
| Executor 内存 |
|
| Executor 数量 |
|
| 每个 Executor 的核数 |
|
| Driver 内存 |
|
| Shuffle 分区数 |
|
| 是否启用动态资源分配 |
|
| 最小 Executor 数 |
|
| 最大 Executor 数 |
|
程序运行参数以字符串数组形式传入,对应 Spark -- 之后的应用参数:
arguments: - "--biz_date" - "{{pipeline.parameters.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 - source: WORKSPACE path: /Workspace/Users/zhang3/lib/utils.jar
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Enum | 是 | 资源来源: |
| String | 是 | 资源文件路径 |
加载行为:
source 值 | 说明 | 典型用法 |
|---|---|---|
| 火山引擎对象存储 | 构建产物上传到 TOS 后引用(推荐用于生产环境)。 |
| 项目工作空间 | 开发阶段快速迭代,文件纳入 Git 版本管理。 |
| 资源中心 | 引用资源中心注册的 YAML 资源描述文件。 |
建议 | 说明 |
|---|---|
生产环境使用 TOS | JAR 包通过 CI/CD 构建后上传到 TOS,保证版本可追溯。 |
合理配置 Spark 参数 | 根据数据量和计算复杂度调整 executor 数量和内存。 |
设置超时 | Jar 任务通常运行时间较长,务必配置 |
分离依赖 | 通用 UDF 放入 extraResources 而非打入主 JAR,减少构建体积。 |
使用 arguments 传参 | 不要在代码中硬编码日期和环境信息,通过 arguments 注入。 |