【技术实现步骤摘要】
一种分布式任务处理方法及系统、电子设备、存储介质
[0001]本申请涉及任务调度
,特别涉及一种分布式任务处理方法及系统、电子设备、存储介质。
技术介绍
[0002]在大数据相关的工作中,任务调度一直是支撑整个大数据工作的基础设施,因而对调度服务的稳定性、并发性要求就非常高。而Airflow由于具有较好的稳定性和功能性,因此广泛应用于任务调度中。
[0003]由于当前的负载均衡算法并不能直接应用到Airflow中,所以当前Airflow主要还是采用的是近似轮询的方式将待执行的任务分发给各个worker执行,worker负责以子进程的方式启动任务,并管理任务的运行状态。
[0004]但是由于被调度的任务的运行时长的不确定性,所以采用现有的方式,可能会出现多个耗时较长且资源消耗较大的任务分配给同一个worker的情况,从而导致某一个worker积压太多任务,并且消耗过多的资源,进而导致该worker新接的任务启动识别,或者正在运行的进程来剔除的情况。所以现有的方式无法有效保证任务被正常执行。
专利技 ...
【技术保护点】
【技术特征摘要】
1.一种分布式任务处理方法,其特征在于,应用于Airflow中的分布式任务处理系统中的任意一个分发器,所述分布式任务处理系统包括多个分发器和多个工作节点,所述分布式任务处理方法,包括:接收对应的调度器推送的当前任务;其中,每个所述分发器对应一个所述调度器;按照当前本地维护的各个所述工作节点的负载得分降序的顺序,将各个所述工作节点进行排序,得到节点排序结果;其中,各个所述工作节点的负载得分由各个所述工作节点分别计算得到并反馈给所述分发器;所述工作节点的负载越大,所述工作节点的负载得分越小;按照所述节点排序结果逐一向各个所述工作节点尝试发送所述当前任务,直至任意一个所述工作节点成功接收所述当前任务。2.根据权利要求1所述的方法,其特征在于,所述工作节点的负载得分的计算方法,包括:每间隔预设时间,所述当前工作节点获取当前本地的等待队列的任务指令数量、运行队列的任务指令数量以及结束队列的任务指令数量;其中,所述当前工作节点指代任意一个所述工作节点;所述当前工作节点计算所述等待队列的任务指令数量、所述运行队列的任务指令数量以及所述结束队列的任务指令数量的和,得到当前任务指令积压量;所述当前工作节点计算预设限制任务量与所述当前任务指令积压量的差值,得到当前空闲任务量;所述当前工作节点将所述当前空闲任务量与零中的较大值除以所述预设限制任务量,得到所述当前工作节点的当前负载得分;其中,所述当前工作节点的当前负载得分用于反馈给每个所述分发器,以更新各个所述分发器维护的所述当前工作节点的负载得分。3.根据权利要求2所述的方法,其特征在于,所述按照所述节点排序结果逐一向各个所述工作节点尝试发送所述当前任务,直至任意一个所述工作节点成功接收所述当前任务,包括:将当前所述节点排序结果中,未在本次调度中向其发送过所述当前任务的各个所述工作节点中,排序在最前的所述工作节点确定当前待接收节点;将所述当前任务发送给所述当前待接收节点;若未接收到所述当前待接收节点反馈的拒绝接收的应答,则确定所述当前待接收节点成功接收所述当前任务;其中,所述当前待接收节点在当前自身的负载得分为零时,反馈拒绝接收的应答;若接收到所述当前待接收节点反馈的拒绝接收的应答,则判断当前所述节点排序结果中,是否还存在未在本次调度中向其发送过所述当前任务的所述工作节点;若判断出当前所述节点排序结果中还存在未在本次调度中向其发送过所述当前任务的所述工作节点,则返回执行所述将当前所述节点排序结果中,未在本次调度中向其发送过所述当前任务的各个所述工作节点中,排序在最前的所述工作节点确定当前待接收节点;若判断出当前所述节点排序结果中不存在未在本次调度中向其发送过所述当前任务的所述工作节点,则将所述当前任务放回等待队列中,直至下一次调度时,返回执行所述将
当前所述节点排序结果中,未在本次调度中向其发送过所述当前任务的各个所述工作节点中,排序在最前的所述工作节点确定当前待接收节点。4.根据权利要求1所述的方法,其特征在于,所述按照所述节点排序结果逐一向各个所述工作节点尝试发送所述当前任务,直至任意一个所述工作节点成功接收所述当前任务之后,还包括:接收当前目标工作节点反馈的所述当前目标工作节点的当前负载得分;其中,所述当前目标工作节点为成功接收所述当前任务的所述工作节点;所述当前目标工作节点的当前负载得分由所述当前目标工作节点在成功接收所述当前任务后计算得到并反馈;利用所述当前工作节点的当前负载得分对本地维护的所述当前工作节点的负载得分进行更新。5.根据权利要求2所述的方法,其特征...
【专利技术属性】
技术研发人员:王龙龙,孙能林,
申请(专利权)人:青岛海尔科技有限公司海尔智家股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。