dolphinscheduler任务莫名重跑

文章描述了一个用户在使用Dolphinscheduler时遇到的任务自动重跑问题,经过排查发现与Zookeeper缓存异常消息、MySQL中的任务实例记录以及任务设置的串行等待有关。最终通过清理Zookeeper数据和数据库记录解决了问题。
摘要由CSDN通过智能技术生成

dolphinscheduler运行了一段时间,忽然发现一个流程下某个任务一直在自动重跑,把工作流删了,任务删了,下线等等,都不能阻止他重复的运行,每秒1次,真是见了鬼

1、把zookeeper停掉发现不再重跑了
这是个错误的方向!!
找到zookeeper的datadir=./tmp/zookeeper,把目录清理掉,留个空文件夹,然后重启zookeeper

终于不重跑任务了。

以为是zookeeper是作为消息中间,存了运行中出的异常,就不断地启动,把消息都清掉,就不会了。
后来发现dolphineschedule的master和worker节点没了,把服务重启恢复了节点,又开始了~~~~~~

2、把mysql数据库里任务实例记录删掉
翻来翻去找到了dolphineschedule的mysql中存任务实例的表,把这个出错的任务对应的记录都删了,世界安静了~~~

delete from t_ds_process_instance where name like 'XXX_SUB4_XX_FX%';

3、总结
该任务在设置的时候设置的是串行等待,应该是这里造成的,因为翻记录发现是“串行重启”,删除了就不存在等待或者恢复问题了。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache DolphinScheduler是一个新一代分布式大数据工作流任务调度系统,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行状态,同时支持试、从指定节点恢复失败、暂停及 Kill任务等操作。目前已经有像IBM、腾讯、美团、360等400多家公司生产上使用。 调度系统现在市面上的调度系统那么多,比如老牌的Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 为什么要选DolphinScheduler ? DolphinScheduler 的定位是大数据工作流调度。通过把大数据和工作流做了点标注. 从而可以知道DolphinScheduler的定位是针对于大数据体系。DolphinScheduler 发展很快 很多公司调度都切换到了DolphinScheduler,掌握DolphinScheduler调度使用势在必行,抓住新技术机遇,为跳巢涨薪做好准备。 优秀的框架都是有大师级别的人写出来的,包含了很多设计思想和技术。DolphinScheduler也不例外,它是一个非常优秀的框架,用到很多技术和设计思想,本课程会带大家深入DolphinScheduler框架源码,包括设计的思想和技术都会讲解,DolphinScheduler源码很多,会按照模块进行讲解,学习完课程后,不仅可以熟悉DolphinScheduler使用,而且可以掌握很多优秀的设计思想和技术,给自己的技术带来很大提升,为跳巢涨薪做好准备。
要使用Java生成DolphinScheduler任务,你需要使用DolphinScheduler提供的Java API。这个API提供了丰富的接口,可以让你通过Java代码来创建、修改、删除DolphinScheduler中的任务。以下是一个简单的Java代码示例,演示了如何利用DolphinScheduler Java API创建一个DolphinScheduler任务: ``` // 导入相关包 import org.apache.dolphinscheduler.api.service.ProcessDefinitionService; import org.apache.dolphinscheduler.api.service.impl.ProcessDefinitionServiceImpl; import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionVersion; // 创建ProcessDefinitionService对象 ProcessDefinitionService processDefinitionService = new ProcessDefinitionServiceImpl(); // 创建ProcessDefinition对象 ProcessDefinition processDefinition = new ProcessDefinition(); processDefinition.setName("MyTask"); processDefinition.setDescription("This is a test task."); processDefinition.setProjectId(1); processDefinition.setProcessDefinitionJson("{\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-1\",\"name\":\"test\",\"params\":{\"rawScript\":\"echo hello world\"}}],\"startNodeId\":\"tasks-1\",\"globalParams\":[],\"tenantId\":-1}"); // 创建ProcessDefinitionVersion对象 ProcessDefinitionVersion processDefinitionVersion = new ProcessDefinitionVersion(); processDefinitionVersion.setProcessDefinitionJson(processDefinition.getProcessDefinitionJson()); processDefinitionVersion.setProcessDefinitionId(processDefinition.getId()); processDefinitionVersion.setVersion(1); // 调用ProcessDefinitionService的createProcessDefinition接口来创建任务 processDefinitionService.createProcessDefinition(processDefinition, processDefinitionVersion); ``` 请注意,以上代码只是一个示例,实际上创建DolphinScheduler任务需要更多的配置和参数。你需要根据自己的实际需求和DolphinScheduler的API文档来完善代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值