任务运维、循环任务死锁.....DolphinScheduler任务配置经验分享

在调研了 DolphinScheduler 之后,在项目上实际使用了一段时间,有了一些任务配置实际经验,分享如下。

封

一、资源中心任务组上限问题

【资源容量】: 允许任务实例并发的最大数量。

1.1、 现象

当我们部署方式是standalone时,资源容量默认值是 10,如下截图:

如果我们调整这个上限,很容易就出现Task和scheduler failed,这就表示同时运行的任务超过上限了。

1.2、解决方案

所以,如果不改变部署方式,我们尽量去拆分任务运行的时间,不要让同一时间点运行任务过多。

二、任务运维问题

2.1、现象

从如下截图可以看出,每个任务组的资源容量是10。

如果我们把所有的任务都放到几个任务组,那么当任务数量上来之后,比如到达如下图现在800+个,当任务堵塞的时候,以下几百个任务需要停止或者运维,这将是灾难。

2.1、解决方案

所幸各个任务组的容量是分开的,各个任务组之间的互补干扰。 所以,尽量去多拆分任务组,这样就会减少因为任务组上限的问题,造成的性能问题和死锁,以及减少后面运维的工作量。

三、循环任务死锁

3.1、现象

任务组容量默认值是10,且使用了功能 逻辑节点-DYNAMIC。

特点: 这个节点可以循环生成子任务,比如设置了20个循环参数,就会循环生成20个子任务,在子任务没有完全生成运行完成之前,这个循环任务会一直保持"运行中"状态,并占用任务组容量。

这就会导致超过10个循环任务同时执行时,循环任务因为任务组容量的问题,无法生成子任务,然后循环任务无法生成子任务,循环任务本身又不会结束,死锁了。

3.2、解决办法

前置条件: 循环任务虽然配置同时运行,但是循环任务还有前置任务,不会完全同时。

提升子任务的任务组内优先级。

  • 循环任务组内优先级设置为一个较小的数字如 2。

  • 子任务组内有限设置为一个较大的数字如 7。

这样,只要生成子任务就会比循环任务优先级高,这样子任务就会一直生成,并执行完成,循环任务也就完成了。不会死锁。

四、依赖任务死锁

4.1、现象

任务组容量默认值是10,且使用了功能 逻辑节点-DEPENDENT。

特点: 这个节点可以设置前置依赖任务,比如下面这个任务设置了前置依赖任务,在前置依赖任务未完成的情况下,这个任务会一直占用1个容量。

如果任务和前置任务的定时时间,设置反了,后置任务比前置任务先运行,那么当任务数量超过任务组容量时,就会导致依赖任务,一直等待前置任务,但是前置任务无法运行,死锁。

4.2、解决办法

避免配置后置任务的定时器比前置任务时间早。

转载自鹏说大数据

原文链接:blog.csdn.net/pengpenhhh/...

本文由 白鲸开源科技 提供发布支持!

相关推荐
wespaul2 小时前
VeapAI 自然语言操作实战|第 05 篇:向量与召回——从知识条目到可检索资产
大数据·数据库·人工智能·milvus
李福春2 小时前
技术思考问题17:上了LangChain框架就等于AI-Agent工程化吗?
大数据·人工智能·langchain·深圳同盟·腾讯云架构师技术同盟·llm应用架构·编排抽象
一只鹿鹿鹿7 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
数字新视界8 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB技术团队8 小时前
冷热分层从建到验:Storage Policy 创建、表级与分区级绑定、SHOW TABLETS 验证的完整命令
大数据·数据库·elasticsearch·搜索引擎·数据分析·apache doris·冷热分层
CALL158119098458 小时前
RoHS报告怎么做?测试项目、流程、费用与报告内容一文讲清
大数据
建筑工程企业管理系统9 小时前
工程进度统计管理系统自动化汇总数据,解决施工企业手工对账误差难题
大数据·人工智能·自动化
GOWIN革文品牌咨询10 小时前
工业测量品牌系统化搭建指南:从内容架构到长期治理的全流程
大数据·人工智能·架构
汇智信科10 小时前
汇智信科智联网关 | 多协议兼容,PLC设备一键上云
大数据·汇智信科
2601_9672127210 小时前
安全型电源轨道系统合规选型技术指标与行业技术路线分析
大数据·经验分享·安全