⌘CtrlK
Appearance
Appearance
Shell 程序是 DolphinScheduler 中最通用、最灵活的任务类型(可运行任意 Shell 命令 / 脚本,包括封装 spark-submit/flink run 等)。
worker 执行该任务的时候,会生成一个临时 shell 脚本,并使用与租户同名的 linux 用户执行这个脚本。
1. 基础环境配置(必选)
| 配置项 | 默认值 | 描述 |
|---|---|---|
| 脚本 | - | 在线直接编写 Shell 代码(适合短脚本 / 单命令)。 |
脚本内容支持 3 种配置方式,按需选择:
方式 1:单行命令(简单场景)
直接填写单行 Shell 命令,示例:
hive -e "use ods; select count(*) from user_info where dt='${sys.date}';"方式 2:多行脚本(复杂逻辑)
填写多行 Shell 脚本,支持条件判断、循环等,示例:
#!/bin/bash
# 定义本地变量
today=${sys.date}
# 创建临时目录
mkdir -p /tmp/ds_shell_${today}
# 执行 HDFS 操作
hdfs dfs -mkdir -p /user/ds/ods/user_info/dt=${today}
# 执行失败则退出(非 0 码)
if [ $? -ne 0 ]; then
echo "HDFS 目录创建失败"
exit 1
fi
echo "任务执行成功"
exit 02. 运行控制配置(可选)
这类配置决定 Shell 程序在 DolphinScheduler 内的运行规则,属于调度层面的配置。在「通用配置」中进行配置。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| 任务优先级 | MEDIUM | worker 线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。 |
| Worker 分组 | default | 任务分配给 worker 组的机器执行,选择 Default,会随机选择一台 worker 机器执行。 |
| 任务组 | - | 用于控制任务实例并发,选择项目中已经定义好的任务组。 |
| 任务组优先级 | 0 | 任务在任务组内运行的优先级,数字越大优先级越高。 |
| 环境名称 | - | 运行程序时指定的虚拟环境。 |
| 本地参数 | - | 是程序局部的用户自定义参数,会替换程序中以 ${变量} 的内容。 |
| 失败重试次数 | 0 | 任务失败后的重试次数,单位:次。 |
| 失败重试间隔 | 1 | 多次重试之间的等待时间,单位:分钟。 |
| 超时告警 | 关闭 | 勾选超时告警、超时失败,当任务超过”超时时长”后,会发送告警邮件并且任务执行失败。 |
# 引用自定义参数 biz_date
echo "当前处理日期:${biz_date}"set -x # 打印所有执行的命令
echo "HIVE_DB: ${hive_db}"
hive -e "use ${hive_db}; show tables;"
set +x # 关闭调试模式原因:执行用户对脚本 / 目录无执行权限;
解决:给脚本添加执行权限(chmod +x script.sh),或修改 DolphinScheduler 租户用户。
原因:参数名拼写错误、优先级覆盖、脚本中未用 ${} 包裹;
解决:检查参数名,在脚本中增加 echo ${参数名} 调试,确认参数值是否正确。
原因:任务逻辑耗时过长、资源不足;
解决:调整「超时时间」,优化脚本逻辑(如拆分任务),增加 Worker 节点资源。
原因:未勾选资源、资源路径错误;
解决:确认「资源」配置中勾选了脚本,使用 ${BASE_DIR} 引用脚本路径。