Apache DolphinScheduler调度任务时中断报空指针异常,如何解决?
Apache DolphinScheduler 任务调度中断空指针报错排查方案
本次报错核心为Master节点提交任务时抛出java.lang.NullPointerException,异常触发位置为MasterBaseTaskExecThread.dispatchTask方法第221行,对应排查与解决方法如下:
排查步骤
- 校验Worker组配置一致性:从日志中可发现任务定义中配置的workerGroup为
default,但任务实例最终携带的workerGroup为hdp,首先确认集群是否存在名为hdp的Worker分组,且该分组下有心跳正常的运行中Worker节点。若配置的Worker分组不存在、或分组下无存活节点,会直接触发该空指针异常。 - 核对集群版本:1.3.8及更早版本存在Worker组校验逻辑缺失的已知问题,提交配置了不存在的Worker组的任务时会直接抛出空指针,可核对当前集群版本是否属于受影响范围。
- 检查资源文件有效性:任务关联了id为127的资源文件
makeup_making_machine.py,确认该资源仍在资源中心存在、对应路径未被修改、运行任务的用户对该资源有可读权限,资源元数据损坏也可能导致任务提交时空指针。 - 检查节点连通性:确认Master节点可正常访问Worker节点的通信端口(默认50051),防火墙、安全组规则未拦截两者的通信请求。
- 检查任务执行环境配置:确认Shell任务中配置的Python解释器路径
/opt/imsxwj/anaconda3/bin/python在对应Worker节点上真实存在,任务工作目录下有对应脚本的执行权限。
解决方案
- 若为Worker组配置错误:要么在集群中新增
hdpWorker分组并纳入可用Worker节点,要么将任务的Worker组配置修改为已存在的default分组,重新发布工作流后重试运行即可。 - 若为版本已知问题:升级DolphinScheduler集群到1.3.9及以上稳定版本即可修复该逻辑缺陷。
- 若为资源文件异常:重新上传对应Python脚本到资源中心,更新任务关联的资源配置后重新发布工作流。
- 若为网络或环境配置异常:调整防火墙/安全组规则放开Master与Worker的通信端口,在Worker节点上提前部署好Python运行环境和对应依赖,重试任务即可。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

