# Spark 程序
Spark 程序用于执行 Spark 应用。
提示:
执行SPARK程序前,需要在${dolphinscheduler安装目录}/bin/env/dolphinscheduler_env.sh文件中,修改SPARK_HOME指向Spark服务在服务器中的路径。如export SPARK_HOME1=${SPARK_HOME1:-/home/spark/spark-2.4.0-bin-hadoop2.6}。
执行SPARK程序前,需要在${dolphinscheduler安装目录}/bin/env/dolphinscheduler_env.sh文件中,修改SPARK_HOME指向Spark服务在服务器中的路径。如export SPARK_HOME1=${SPARK_HOME1:-/home/spark/spark-2.4.0-bin-hadoop2.6}。
配置项说明:
Spark 程序配置项可分为 6 大类:基础环境、程序本体、资源分配、程序参数、高级配置、运行控制,核心是「基础环境 + 程序本体 + 资源分配」。
1. 基础信息配置(必选)
这类配置用于指定 Spark 程序运行的基础环境,是任务能执行的前提,决定「程序在哪里跑、用哪个版本的 Spark」。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| 程序类型 | JAVA | 支持 Java、Scala、Python 和 SQL 四种语言。 |
| Spark 版本 | Spark1 | 指定使用的 Spark 版本(匹配集群实际版本,避免兼容性问题),支持 Spark1 和 Spark2。 |
| 任务名称 | - | Spark 程序的名称。 |
| 部署方式 | local | Spark 作业的部署模式。 (1) spark submit 支持 yarn-clusetr、yarn-client 和 local 三种模式。 (2) spark sql 支持 yarn-client 和 local 两种模式。 |
2. 程序配置(必选)
这类配置指向「要运行的 Spark 程序本身」,决定「跑哪个程序」。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| 主函数的 Class | - | Spark 程序的入口类 Main class 的全路径。 |
| 主程序包 | - | 执行 Spark 程序的 jar 包(通过项目配置》文件管理上传)。 |
| SQL脚本 | - | 当「程序类型」为 SQL 时,需要定义 Spark SQL 语句。 |
3. 资源配置(核心)
这类配置决定 Spark 作业的资源占用,直接影响运行效率和集群资源利用率,是性能调优的关键,需根据作业数据量和集群资源合理设置。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| Driver 核心数 | 1 | Driver 进程占用的 CPU 核心数(YARN 模式生效)。 |
| Driver 内存数 | 512M | Driver 进程的内存大小(Driver 是作业的总控节点)。 |
| Executor 数量 | 1 | Executor 的总个数(决定并行度)。 |
| Executor 内存数 | 2G | 每个 Executor 进程的内存大小(Executor 是实际计算节点)。 |
| Executor 核心数 | 2 | 每个 Executor 占用的 CPU 核心数。 |
4. 资源选择(可选)
这类配置用于选择 Spark 程序依赖的外部 Jar 包。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| 资源 | - | 程序依赖的外部 Jar 包(多个用逗号分隔),如果其他参数中引用了资源文件,需要在资源中选择指定。 |
5. 程序参数配置(可选)
这类配置是传递给 Spark 主类 / 脚本的业务参数,决定「程序怎么跑(业务逻辑层面)」。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| 主程序参数 | - | Spark 主类的入参(多个参数用空格分隔),支持自定义参数变量的替换。 |
| 选项参数 | - | 传递给 spark-submit 的额外配置(--conf 开头),支持 --jar、--files、--archives、--conf 格式。 |
6. 运行控制配置(可选)
这类配置决定 Spark 任务在 DolphinScheduler 内的运行规则,属于调度层面的配置。在「通用配置」中进行配置。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| 任务优先级 | MEDIUM | worker 线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。 |
| Worker 分组 | default | 任务分配给 worker 组的机器执行,选择 Default,会随机选择一台 worker 机器执行。 |
| 任务组 | - | 用于控制任务实例并发,选择项目中已经定义好的任务组。 |
| 任务组优先级 | 0 | 任务在任务组内运行的优先级,数字越大优先级越高。 |
| 环境名称 | - | 运行程序时指定的虚拟环境。 |
| 本地参数 | - | 是程序局部的用户自定义参数,会替换程序中以 ${变量} 的内容。 |
| 失败重试次数 | 0 | 任务失败后的重试次数,单位:次。 |
| 失败重试间隔 | 1 | 多次重试之间的等待时间,单位:分钟。 |
| 超时告警 | 关闭 | 勾选超时告警、超时失败,当任务超过”超时时长”后,会发送告警邮件并且任务执行失败。 |