CN112363819B - 大数据任务动态编排调度方法、装置及计算设备 - Google Patents

大数据任务动态编排调度方法、装置及计算设备 Download PDF

Info

Publication number
CN112363819B
CN112363819B CN202011389768.4A CN202011389768A CN112363819B CN 112363819 B CN112363819 B CN 112363819B CN 202011389768 A CN202011389768 A CN 202011389768A CN 112363819 B CN112363819 B CN 112363819B
Authority
CN
China
Prior art keywords
task
tasks
directed acyclic
acyclic graph
resource demand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011389768.4A
Other languages
English (en)
Other versions
CN112363819A (zh
Inventor
徐文振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Fangduoduo Network Technology Co ltd
Original Assignee
Shenzhen Fangduoduo Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Fangduoduo Network Technology Co ltd filed Critical Shenzhen Fangduoduo Network Technology Co ltd
Priority to CN202011389768.4A priority Critical patent/CN112363819B/zh
Publication of CN112363819A publication Critical patent/CN112363819A/zh
Application granted granted Critical
Publication of CN112363819B publication Critical patent/CN112363819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例涉及大数据技术领域,公开了一种大数据任务动态编排调度方法、装置及计算设备,该方法包括:将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务。通过上述方式,本发明实施例能够进行动态任务编排,优化调节调度任务的执行,保证关键任务可以按时完成。

Description

大数据任务动态编排调度方法、装置及计算设备
技术领域
本发明实施例涉及大数据技术领域,具体涉及一种大数据任务动态编排调度方法、装置及计算设备。
背景技术
数据仓库(DataWarehouse,DW)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。数仓按主题进行组织,对原有分散的数据库数据抽取,清理的基础上经过系统加工,汇总,整理得到。必须消除源数据的不一致性以保证数仓内的信息是关于整个企业一致的全局信息。一旦数据进入数仓,将长期存在,并被用户大量查询,修改和删除操作很少。数仓一般包括企业从某一时点到目前各个阶段的信息,可对企业发展做出定量分析和预测。
数仓调度一般是按照已预先配置好的调度顺序执行,流程是固定的、顺序是固定的,导致了一些特殊场景下关键的调度不能按时被执行。
发明内容
鉴于上述问题,本发明实施例提供了一种大数据任务动态编排调度方法、装置及计算设备,克服了上述问题或者至少部分地解决了上述问题。
根据本发明实施例的一个方面,提供了一种大数据任务动态编排调度方法,所述方法包括:将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务。
在一种可选的方式中,所述将多个任务根据依赖关系构成有向无环图,包括:每新增加一个任务,根据依赖关系将所述任务增加至所述有向无环图中,并根据资源情况指定一个值作为所述任务的资源需求数量。
在一种可选的方式中,所述将多个任务根据依赖关系构成有向无环图,包括:对于所述有向无环图中的无时限要求的所述任务,每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量。
在一种可选的方式中,所述每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量,包括:每天将所述任务最近7天执行时间的中位数更新为所述任务的资源需求数量。
在一种可选的方式中,所述每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权,包括:对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中剩余分钟数等于时限与当前时间的差值。
在一种可选的方式中,所述根据剩余时间对所述关键任务的资源需求数量进行动态加权,包括:根据所述剩余分钟数计算加权值,所述加权值=(60-剩余分钟数)*2;将所述关键任务的资源需求数量更新为所述加权值。
在一种可选的方式中,所述根据预设的规则执行所述有向无环图中的所述任务,包括:每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。
根据本发明实施例的另一个方面,提供了一种大数据任务动态编排调度装置,所述装置包括:图构成单元,用于将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;动态加权单元,用于每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;任务执行单元,用于根据预设的规则执行所述有向无环图中的所述任务。
根据本发明实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述大数据任务动态编排调度方法的步骤。
根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述大数据任务动态编排调度方法的步骤。
本发明实施例通过将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务,能够进行动态任务编排,优化调节调度任务的执行,保证关键任务可以按时完成。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的大数据任务动态编排调度方法的流程示意图;
图2示出了本发明实施例提供的大数据任务动态编排调度方法的有向无环图示意图;
图3示出了本发明实施例提供的大数据任务动态编排调度方法的执行任务示意图;
图4示出了本发明实施例提供的大数据任务动态编排调度方法的又一执行任务示意图;
图5示出了本发明实施例提供的大数据任务动态编排调度装置的结构示意图;
图6示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例提供的大数据任务动态编排调度方法的流程示意图。该方法由服务器执行。如图1所示,大数据任务动态编排调度方法包括:
步骤S11:将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量。
在本发明实施例中,调度系统会从数据库中,将某个调度的任务加载到内存中。内存中的数据,体现出来就是一个有向无环图。每个数仓脚本,比如sql脚本,会有生成表数据的语法,通过解析脚本,可以分析出这个脚本依赖到的库、表、字段,从而得到依赖关系。每新增加一个任务,根据依赖关系将所述任务增加至所述有向无环图中,并根据资源情况指定一个值作为所述任务的资源需求数量。每个任务的数据结构包括:任务ID、任务权重值、子任务列表、任务类型以及完成期限。其中,任务权重值即为任务的资源需求数量,任务类型可以包括:hive sql/spark sql/shell/sqoop等。本发明实施例中的任务主要是用于数仓的数据计算。
对于所述有向无环图中的无时限要求的所述任务,每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量。其中,第二预设时间优选为1天,对应地,每天将所述任务最近7天执行时间的中位数更新为所述任务的资源需求数量。如果有向无环图中部分任务一天执行多次,则每天将最近7次执行时间的中位数更新为任务的资源需求数量。当然第二预设时间也可以是其他值,具体可以根据需要进行设置。
步骤S12:每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权。
在本发明实施例中,第一预设时间可以根据需要进行设置,在此并不作具体限制。第一预设时间优选为1分钟。对应地,对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中,剩余分钟数等于时限与当前时间的差值。根据所述剩余分钟数计算加权值,剩余分钟数小于60分钟时,所述加权值=(60-剩余分钟数)*2;将所述关键任务的资源需求数量更新为所述加权值。一般地,任务会在60分钟内完成,通过该方法进行加权可以保证权值足够大,进而可以保证关键任按时完成。
步骤S13:根据预设的规则执行所述有向无环图中的所述任务。
在本发明实施例中,当有执行器空闲时,就会尝试从这个内存中算出一个任务出来,交给这个执行器执行。每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。如图2中的有向无环图,最长链路为9-9-8,因此将该最长链路的根节点9作为当前任务节点,首先执行该当前任务节点的任务,参见图3。如果此时另有一个空闲的任务执行器进来领取任务执行,此时,最长链路为5-9-8,对应选择该链路的根节点5作为当前任务节点,任务执行器执行该节点5的任务。该任务执行器执行完该节点的任务后,重新选择新的节点来执行任务,此时的有向无环图如图4所示,由于链路9-9-8的根节点9还在执行,即该链路的第二个节点9依赖未完成,该节点9不参与当前次选择。而链路1-2-1的末节点1有限时要求,且此时已经进行了动态加权至51,使得该链路成为最长链路,因此,该任务执行器选择该最长链路的根节点1作为当前任务节点执行对应的任务。如此实现了有限时要求的关键节点进行插队,优选执行目的,通过该方式能够保证关键节点的任务按时完成。
本发明实施例通过将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务,能够进行动态任务编排,优化调节调度任务的执行,保证关键任务可以按时完成。
图5示出了本发明实施例的大数据任务动态编排调度装置的结构示意图。该大数据任务动态编排调度装置应用于服务器。如图5所示,该大数据任务动态编排调度装置包括:图构成单元501、动态加权单元502以及任务执行单元503。其中:
图构成单元501用于将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;动态加权单元502用于每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;任务执行单元503用于根据预设的规则执行所述有向无环图中的所述任务。
在一种可选的方式中,图构成单元501用于:每新增加一个任务,根据依赖关系将所述任务增加至所述有向无环图中,并根据资源情况指定一个值作为所述任务的资源需求数量。
在一种可选的方式中,图构成单元501用于:对于所述有向无环图中的无时限要求的所述任务,每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量。
在一种可选的方式中,图构成单元501用于:每天将所述任务最近7天执行时间的中位数更新为所述任务的资源需求数量。
在一种可选的方式中,动态加权单元502用于:对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中剩余分钟数等于时限与当前时间的差值。
在一种可选的方式中,动态加权单元502用于:根据所述剩余分钟数计算加权值,所述加权值=(60-剩余分钟数)*2;将所述关键任务的资源需求数量更新为所述加权值。
在一种可选的方式中,任务执行单元503用于:每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。
本发明实施例通过将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务,能够进行动态任务编排,优化调节调度任务的执行,保证关键任务可以按时完成。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的大数据任务动态编排调度方法。
可执行指令具体可以用于使得处理器执行以下操作:
将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;
每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;
根据预设的规则执行所述有向无环图中的所述任务。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
每新增加一个任务,根据依赖关系将所述任务增加至所述有向无环图中,并根据资源情况指定一个值作为所述任务的资源需求数量。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
对于所述有向无环图中的无时限要求的所述任务,每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
每天将所述任务最近7天执行时间的中位数更新为所述任务的资源需求数量。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中剩余分钟数等于时限与当前时间的差值。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述剩余分钟数计算加权值,所述加权值=(60-剩余分钟数)*2;
将所述关键任务的资源需求数量更新为所述加权值。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;
执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。
本发明实施例通过将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务,能够进行动态任务编排,优化调节调度任务的执行,保证关键任务可以按时完成。
本发明实施例提供一种大数据任务动态编排调度装置,用于执行上述大数据任务动态编排调度方法。
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使基站设备执行上述任意方法实施例中的大数据任务动态编排调度方法。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的大数据任务动态编排调度方法。
可执行指令具体可以用于使得处理器执行以下操作:
将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;
每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;
根据预设的规则执行所述有向无环图中的所述任务。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
每新增加一个任务,根据依赖关系将所述任务增加至所述有向无环图中,并根据资源情况指定一个值作为所述任务的资源需求数量。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
对于所述有向无环图中的无时限要求的所述任务,每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
每天将所述任务最近7天执行时间的中位数更新为所述任务的资源需求数量。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中剩余分钟数等于时限与当前时间的差值。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述剩余分钟数计算加权值,所述加权值=(60-剩余分钟数)*2;
将所述关键任务的资源需求数量更新为所述加权值。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;
执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。
本发明实施例通过将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务,能够进行动态任务编排,优化调节调度任务的执行,保证关键任务可以按时完成。
图6示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
如图6所示,该计算设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。处理器602,用于执行程序610,具体可以执行上述大数据任务动态编排调度方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或各个集成电路。设备包括的一个或各个处理器,可以是同一类型的处理器,如一个或各个CPU;也可以是不同类型的处理器,如一个或各个CPU以及一个或各个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:
将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;
每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;
根据预设的规则执行所述有向无环图中的所述任务。
在一种可选的方式中,所述程序610使所述处理器执行以下操作:
每新增加一个任务,根据依赖关系将所述任务增加至所述有向无环图中,并根据资源情况指定一个值作为所述任务的资源需求数量。
在一种可选的方式中,所述程序610使所述处理器执行以下操作:
对于所述有向无环图中的无时限要求的所述任务,每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量。
在一种可选的方式中,所述程序610使所述处理器执行以下操作:
每天将所述任务最近7天执行时间的中位数更新为所述任务的资源需求数量。
在一种可选的方式中,所述程序610使所述处理器执行以下操作:
对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中剩余分钟数等于时限与当前时间的差值。
在一种可选的方式中,所述程序610使所述处理器执行以下操作:
根据所述剩余分钟数计算加权值,所述加权值=(60-剩余分钟数)*2;
将所述关键任务的资源需求数量更新为所述加权值。
在一种可选的方式中,所述程序610使所述处理器执行以下操作:
每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;
执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。
本发明实施例通过将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权;根据预设的规则执行所述有向无环图中的所述任务,能够进行动态任务编排,优化调节调度任务的执行,保证关键任务可以按时完成。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (7)

1.一种大数据任务动态编排调度方法,其特征在于,所述方法包括:
将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;
每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权,包括:对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中剩余分钟数等于时限与当前时间的差值;其中,根据所述剩余分钟数对所述关键任务的资源需求数量进行动态加权,包括:根据所述剩余分钟数计算加权值,所述加权值=(60-剩余分钟数)*2;将所述关键任务的资源需求数量更新为所述加权值;
根据预设的规则执行所述有向无环图中的所述任务,包括:每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;所述最长链路为资源需求数量总和最大的链路;执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。
2.根据权利要求1所述的方法,其特征在于,所述将多个任务根据依赖关系构成有向无环图,包括:
每新增加一个任务,根据依赖关系将所述任务增加至所述有向无环图中,并根据资源情况指定一个值作为所述任务的资源需求数量。
3.根据权利要求1所述的方法,其特征在于,所述将多个任务根据依赖关系构成有向无环图,包括:
对于所述有向无环图中的无时限要求的所述任务,每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量。
4.根据权利要求3所述的方法,其特征在于,所述每隔第二预设时间根据所述任务历史执行时间的中位数更新所述任务的资源需求数量,包括:
每天将所述任务最近7天执行时间的中位数更新为所述任务的资源需求数量。
5.一种大数据任务动态编排调度装置,其特征在于,所述装置包括:
图构成单元,用于将多个任务根据依赖关系构成有向无环图,其中,所述有向无环图中的圆圈代表任务,圆圈中的数字表示执行所述任务的资源需求数量;
动态加权单元,用于每隔第一预设时间对所述有向无环图中有限时要求的关键任务的资源需求数量进行动态加权,包括:对于所述有向无环图中的有时限要求的所述关键任务,每隔一分钟根据剩余分钟数对所述关键任务的资源需求数量进行动态加权,其中剩余分钟数等于时限与当前时间的差值;其中,根据所述剩余分钟数对所述关键任务的资源需求数量进行动态加权,包括:根据所述剩余分钟数计算加权值,所述加权值=(60-剩余分钟数)*2;将所述关键任务的资源需求数量更新为所述加权值;
任务执行单元,用于根据预设的规则执行所述有向无环图中的所述任务,包括:每次选择由未执行任务构成的所述有向无环图中最长链路的根节点作为当前任务节点,其中,依赖未完成的所述任务不参与当前次选择;所述最长链路为资源需求数量总和最大的链路;执行所述当前任务节点的任务直至执行完所述有向无环图中的所有任务。
6.一种计算设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据权利要求1-4任一项所述大数据任务动态编排调度方法的步骤。
7.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行根据权利要求1-4任一项所述大数据任务动态编排调度方法的步骤。
CN202011389768.4A 2020-12-02 2020-12-02 大数据任务动态编排调度方法、装置及计算设备 Active CN112363819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011389768.4A CN112363819B (zh) 2020-12-02 2020-12-02 大数据任务动态编排调度方法、装置及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011389768.4A CN112363819B (zh) 2020-12-02 2020-12-02 大数据任务动态编排调度方法、装置及计算设备

Publications (2)

Publication Number Publication Date
CN112363819A CN112363819A (zh) 2021-02-12
CN112363819B true CN112363819B (zh) 2024-08-09

Family

ID=74535813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011389768.4A Active CN112363819B (zh) 2020-12-02 2020-12-02 大数据任务动态编排调度方法、装置及计算设备

Country Status (1)

Country Link
CN (1) CN112363819B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377348B (zh) * 2021-06-10 2024-06-28 平安科技(深圳)有限公司 应用于任务引擎的任务调整方法、相关装置和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107015856A (zh) * 2017-03-30 2017-08-04 青海大学 云环境下科学工作流中的任务调度方案生成方法及装置
CN107291545A (zh) * 2017-08-07 2017-10-24 星环信息科技(上海)有限公司 计算集群中多用户的任务调度方法及设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
WO2010037177A1 (en) * 2008-10-03 2010-04-08 The University Of Sydney Scheduling an application for performance on a heterogeneous computing system
US9262216B2 (en) * 2012-02-14 2016-02-16 Microsoft Technologies Licensing, LLC Computing cluster with latency control
CN106155791B (zh) * 2016-06-30 2019-05-07 电子科技大学 一种分布式环境下的工作流任务调度方法
CN108268312A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 任务调度方法和调度器
CN108108245B (zh) * 2017-12-18 2020-11-20 天津科技大学 一种云平台宽节点科学工作流的混合型调度方法及系统
CN110096345B (zh) * 2019-03-16 2024-04-12 平安科技(深圳)有限公司 智能任务调度方法、装置、设备及存储介质
CN110134506A (zh) * 2019-05-24 2019-08-16 哈尔滨理工大学 基于处理器内核动态的实时动态关键路径多核调度方法
CN110673939B (zh) * 2019-09-23 2021-12-28 汉纳森(厦门)数据股份有限公司 一种基于airflow和yarn的任务调度方法、装置及介质
CN111274016B (zh) * 2020-01-20 2022-09-09 中国人民解放军国防科技大学 基于模块融合的动态部分可重构系统应用划分与调度方法
CN111367642B (zh) * 2020-03-09 2023-08-22 中国铁塔股份有限公司 一种任务调度执行方法及装置
CN111597028B (zh) * 2020-05-19 2023-08-25 北京百度网讯科技有限公司 用于任务调度的方法和装置
CN111931009B (zh) * 2020-08-13 2023-09-26 中国工商银行股份有限公司 批量作业的作业最大路径确定方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107015856A (zh) * 2017-03-30 2017-08-04 青海大学 云环境下科学工作流中的任务调度方案生成方法及装置
CN107291545A (zh) * 2017-08-07 2017-10-24 星环信息科技(上海)有限公司 计算集群中多用户的任务调度方法及设备

Also Published As

Publication number Publication date
CN112363819A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN113535367B (zh) 任务调度方法及相关装置
CN107239335B (zh) 分布式系统的作业调度系统及方法
CN110162413B (zh) 事件驱动方法及装置
JP3944154B2 (ja) マルチスレッド・サーバ内のスレッド・プールを動的に調整する方法およびシステム
US9996593B1 (en) Parallel processing framework
US20090282413A1 (en) Scalable Scheduling of Tasks in Heterogeneous Systems
US20150205633A1 (en) Task management in single-threaded environments
CN112114973A (zh) 一种数据处理方法及装置
CN114610474B (zh) 一种异构超算环境下多策略的作业调度方法及系统
US8458136B2 (en) Scheduling highly parallel jobs having global interdependencies
JP2004192047A (ja) メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム
CN112748993A (zh) 任务执行方法、装置、存储介质及电子设备
CN112363819B (zh) 大数据任务动态编排调度方法、装置及计算设备
US20200175072A1 (en) Complex modeling computational engine optimized to reduce redundant calculations
CN112150035B (zh) 数据处理方法和装置
CN113407343A (zh) 一种基于资源分配的业务处理方法、装置及设备
CN113010310A (zh) 作业数据的处理方法、装置和服务器
CN116302464A (zh) 基于单向链表的云平台资源编排方法、装置及电子设备
Tang et al. A network load perception based task scheduler for parallel distributed data processing systems
CN113722141B (zh) 数据任务的延迟原因确定方法、装置、电子设备及介质
CN109344303A (zh) 一种数据结构切换方法、装置、设备和存储介质
CN113296907A (zh) 一种基于集群的任务调度处理方法、系统和计算机设备
Bengre et al. A learning-based scheduler for high volume processing in data warehouse using graph neural networks
US20180239640A1 (en) Distributed data processing system, and distributed data processing method
Diakité et al. Assessing new approaches to schedule a batch of identical intree-shaped workflows on a heterogeneous platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant