Skip to content
运维指南/调度引擎注册失败/作业执行与调度问题 - 排查与解决手册

作业执行与调度问题 - 排查与解决手册

1. 调度引擎注册失败:UNSUPPORTED_SCHEDULER

现象:注册调度引擎时提示“Unsupported scheduler”或“不受支持的引擎类型”。

解决步骤

  1. 检查 Dolphin 进程
    ps -ef | grep dolphinscheduler,若未启动则启动,以standlone为例:sh /path/service/dolphin/start-standalone.sh

  2. 查看资源是否超限
    tail -f /path/service/dolphin/standalone-server/logs/dolphinscheduler-standalone.log,若出现“SystemMemoryUsedPercentage: 0.9 is over then”:

    • 修改 dolphin/standalone-server/conf/application.yaml,将 max-system-memory-usage-percentage-thresholds 调大(如 0.9→0.95)
    • 重启 Dolphin
      • application.yaml配置项说明:
配置项默认值描述
max-system-cpu-usage-percentage-thresholds0.8worker最大系统cpu使用值,只有当前系统cpu使用值低于最大系统cpu使用值,worker服务才能接收任务. 默认值为0.8: 会使用80%的操作系统CPU
max-jvm-cpu-usage-percentage-thresholds0.8worker最大JVM cpu使用值,只有当前JVM cpu使用值低于最大JVM cpu使用值,worker服务才能接收任务. 默认值为0.8: 会使用80%的JVM CPU。
max-system-memory-usage-percentage-thresholds0.8worker最大系统 内存使用值,只有当前系统内存使用值低于最大系统内存使用值,worker服务才能接收任务. 默认值为0.8: 会使用80%的操作系统内存。
max-disk-usage-percentage-thresholds0.8worker最大系统磁盘使用值,只有当前系统磁盘使用值低于最大系统磁盘使用值,worker服务才能接收任务. 默认值为0.8: 会使用80%的操作系统磁盘空间。
  1. 核对数据库 URL 一致性

    • 界面注册的数据库 URL 必须与 dolphinscheduler/bin/env/dolphinscheduler_env.sh 中的 SPRING_DATASOURCE_URL 完全一致
    • 若不一致,修改界面 URL 后重新注册
  2. 检查驱动和外置驱动路径

    • 确保数据库驱动已放到 Dolphin 的 lib 目录
  3. 若提示“cannot found datasource”:确认 Dolphin 已正常启动,且数据库连接正常,然后重启 Dolphin 再注册。


2. 调度引擎已被注册:has been registered by IP

现象:注册时提示“Scheduling engine address [xxx] has been registered by IP [127.0.0.1], please confirm.”

解决步骤

  1. ZooKeeper 注册方式

    • 进入 ZK 客户端:./zkCli.sh -server <zk_ip>:2181
    • 查找节点:ls -R /dws,找到 /dws/primeton/nodes/lock
    • 删除节点:delete /dws/primeton/nodes/lock
    • 退出并重启 Dolphin,重新注册
  2. JDBC 注册方式

    • 停止 Dolphin
    • 登录 Dolphin 数据库,清空 t_ds_jdbc_registry_data 表(先备份)
    • 重启 Dolphin,重新注册

3. 作业/任务卡住不执行(一直运行中或提交成功无明细)

现象:任务长时间处于“运行中”或“提交成功”,但无日志、无进度。

解决步骤

  1. 检查资源是否充足

    • 进入“公共资源-调度引擎-执行资源状态”,查看 CPU/内存是否超限
    • 若超限,按第 一 条调整资源阈值或扩容
  2. 查询运行中任务并停止

    • 进入界面“作业调度-作业流实例”,停止任务
    • 若界面停止不了,根据任务类型,需去对应的引擎服务器查看任务情况:
      • 数据加工(DI引擎):

        • 查询运行中任务列表,用户可进入${Primeton DI安装目录}/diclient 目录,执行 showtasks.sh 脚本查询 DI 集群中各个 Server 节点正在运行中的任务列表(获取任务执行 JobId 列表)。
          sh showtasks.sh 或者 ./showtasks.sh
        • 停止运行中任务,用户可进入${Primeton DI安装目录}/diclient 目录,执行 stoptask.sh 脚本停止 DI 集群中正在运行的任务(参数为上一步骤查询获得的任务 JobId)。若 DI 集群中未运行 JobId 为传入参数的任务,则提示‘Server集群节点不存在任务[jobId]运行中信息。
           sh showtasks.sh 或者 ./showtasks.sh
      • 数据同步(seatunnel引擎):

        • 查询运行中任务列表:
          cd  ${Seatunnel安装目录}
          ./bin/seatunnel.sh -l
        • 若需要手动停止seatunnel任务,使用如下命令:
          cd  ${Seatunnel安装目录}
          ./bin/seatunnel.sh -can ${Job ID}  	 	#Job ID可使用./bin/seatunnel.sh -l查看
  3. 检查执行引擎(DI/Seatunnel)是否正常

  • 确认 DI 和 Seatunnel 进程存在,且与 Dolphin 使用同一系统用户(如 dws

4. 定时任务不触发

现象:配置了定时,但到点不执行。

解决步骤

  1. 核对调度引擎编码

    • 界面调度引擎的“引擎编码”必须等于 dolphinscheduler/conf/application.yaml 中的 instanceName
  2. 检查时区一致性

    • 所有服务器时区统一:timedatectl set-timezone Asia/Shanghai
    • Dolphin 数据库 URL 需带时区参数:serverTimezone=Asia/Shanghai
  3. 检查 quartz 表数据

    • 登录 Dolphin 数据库,查看 QRTZ_TRIGGERS 表是否有对应作业的触发器
    • 若无,可尝试先禁用定时,保存;再启用定时,保存
  4. 补丁缺失

    • LA2 版本需申请补丁 DWS7&DI8LA2_SERVER_20250902_P1

5. 任务状态异常(Kill、失败无日志)

现象:大量任务状态为 Kill,或任务失败但无日志。

解决步骤

  1. 检查作业流失败策略

    • 若上游任务失败,且下游任务被 Kill,说明作业流配置了“结束”策略。可在作业流定义中改为“继续”或调整依赖
  2. 检查资源是否不足

    • 若任务提交成功但无明细,通常是资源不足导致任务未分发。按第 1 条调整资源阈值或扩容
  3. 检查 worker 目录权限

    • 确保 Dolphin 用户对 /tmp/exec/process/ 有读写权限:chown -R dws:dws /tmp/exec/process/
  4. 清理异常任务

    • 若任务实例一直卡在 Kill 状态,操作dolphin数据库(一定先备份):从作业流实例进去,查看对应的任务实例,用id,别用名字,先清任务实例,再清作业流实例,t_ds_task_instance(任务实例表)、t_ds_workflow_instance(作业流实例表)

6. 资源不足导致任务失败(Overload)

现象:日志中出现 SystemMemoryUsedPercentage: 0.93 is over then 或任务下发缓慢。

解决步骤

  1. 调整资源阈值(紧急临时方案)

    • 修改 dolphin/standalone-server/conf/application.yaml,以standlone为例,参考第 一 条调整资源阈值或扩容:
      yaml
      max-system-memory-usage-percentage-thresholds: 0.96
    • 重启 Dolphin
  2. 扩容(根本方案)

    • 增加服务器内存/CPU,或将 Dolphin、DI、Seatunnel 迁移到专用机器
  3. 优化作业并发

    • 在作业流通用配置中,将执行策略改为“串行等待”,减少同时运行的任务数

7. 作业配置问题(worker 分组选不了、变量传递失败)

现象:worker 分组无法选择,或变量传递不生效。

解决步骤

  1. worker 分组无法选择

    • 先在“公共资源-调度引擎”中新增 worker 分组,保存后刷新页面,再在作业配置中选择
  2. 变量传递失败

  3. condition 流转不生效

    • 检查 condition 组件是否配置了分支条件,且每个分支都连接到下游节点
    • 分支表达式使用正确的变量名和比较符

快速排查流程图

作业执行异常

  ├─▶ 调度引擎注册失败? → 检查 Dolphin 进程、资源阈值、URL 一致性

  ├─▶ 任务卡住不执行? → 查看资源监控、worker 日志、清理卡住实例

  ├─▶ 定时任务不触发? → 核对引擎编码、时区、quartz 表

  ├─▶ 任务状态 Kill? → 检查失败策略、资源、worker 权限

  ├─▶ 资源不足? → 调整资源阈值、扩容、优化并发

  └─▶ 作业配置问题? → 检查 worker 分组、变量传递、condition

:所有涉及数据库操作前请务必备份数据。补丁请从 AME+ 平台申请。