[go: up one dir, main page]

CN104714838A - 一种任务调度方法及装置 - Google Patents

一种任务调度方法及装置 Download PDF

Info

Publication number
CN104714838A
CN104714838A CN201310681601.9A CN201310681601A CN104714838A CN 104714838 A CN104714838 A CN 104714838A CN 201310681601 A CN201310681601 A CN 201310681601A CN 104714838 A CN104714838 A CN 104714838A
Authority
CN
China
Prior art keywords
task
tasks
priority
scheduling
dependence
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.)
Pending
Application number
CN201310681601.9A
Other languages
English (en)
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.)
China Mobile Group Sichuan Co Ltd
Original Assignee
China Mobile Group Sichuan 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 China Mobile Group Sichuan Co Ltd filed Critical China Mobile Group Sichuan Co Ltd
Priority to CN201310681601.9A priority Critical patent/CN104714838A/zh
Publication of CN104714838A publication Critical patent/CN104714838A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种任务调度方法及装置。其中包括:从第一任务的任务配置文件中解析得到任务配置项;根据所述任务配置项查询所述第一任务完成的依赖条件;根据所述第一任务完成的依赖条件调度所述第一任务。

Description

一种任务调度方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种任务调度方法及装置。
背景技术
随着信息技术的不断发展,信息量呈爆炸式增长,如何快速地从海量数据中挖掘出有价值的信息变得日益重要,大数据系统正是这样一个数据处理和服务平台,作为提供数据计算服务的平台,通常承担了成百上千甚至更多的任务,数据处理过程通常涉及到复杂的流程,一次完整的数据处理任务通常包括多个子任务,如何有效管理和控制好这些任务,让它们协调地工作,是影响到大数据系统能否实现其价值的重要性因素之一。
大数据系统的主要特点包括:
(1)数据量巨大:系统通常拥有若干TB甚至上PB的数据量;
(2)任务数量庞大:作为数据服务平台,随时接收用户提交的处理任务;
(3)任务通常以数据处理为中心:任务的主要职责是对数据进行清洗、转化、分析、挖掘等,各个任务之间构成一个数据处理流;
(4)任务之间的关系通常通过数据来建立。
目前,任务调度方式普遍采用控制流的原理,即根据任务状态来控制任务的执行流程,所谓任务状态,是指任务的运行结果情况,即成功或者失败。任务调度通常按照这样的逻辑来进行:假如任务执行计划中包括A、B、C三个任务,三者的依赖关系为:C>B>A,即C能否启动取决于B的运行状态是否成功,B能否启动,取决于A的运行状态是否成功。
现有技术中,普遍采用的是基于控制流和任务状态的任务调度方式,该方式在任务数较少的时候,很容易实现,但是当任务量非常庞大的时候,尤其是任务之间的依赖关系非常复杂的时候,对任务关系的维护将是个很大的挑战。另一方面,假如在A、B、C构成的任务链中,如果A任务产生多个输出结果,B将使用到其中某一部分输出结果,这些输出结果之间存在一定的时间间隔,设任务A在时刻t1输出B所依赖的资源,在t2时刻A任务完成,那么在这种调度机制下,任务B最早启动时间为t2——即任务A全部完成,对于B来说,其所依赖的资源在t1时刻就存在,则(t2-t1)为任务B的空闲等待时间。
综上所述,现有方案的缺点主要体现在以下几个方面:
1、调度系统必须对任务之间的关系进行维护,这增加了调度系统的实现难度和运行成本;
2、任务之间存在空闲等待时间,会造成资源上的浪费和任务的延迟现象。
发明内容
为了解决在大数据系统中任务调度复杂且存在延迟的技术问题,本发明提出一种任务调度方法及装置。
本发明的一个方面,提供一种任务调度方法,包括:
从第一任务的任务配置文件中解析得到任务配置项;
根据所述任务配置项查询所述第一任务完成的依赖条件;
根据所述第一任务完成的依赖条件调度所述第一任务。
本发明的另一个方面,提供一种任务调度装置,包括:
解析模块,用于从第一任务的任务配置文件中解析得到任务配置项;
查询模块,用于根据所述任务配置项查询所述第一任务完成的依赖条件;
调度模块,用于根据所述第一任务完成的依赖条件调度所述第一任务。本发明的任务调度方法及装置,通过对任务执行的依赖条件进行判断,来对任务进行执行调度,无需维护任务之间的关系,降低了系统的复杂度,提升系统效率;使得大规模任务群的调度管理得以实现;最大程度减少任务空闲等待时间,提高系统的效率。
附图说明
图1是本发明任务调度方法实施例的流程图;
图2是本发明任务调度方法另一实施例的流程图;
图3是本发明任务调度方法再一实施例的流程图;
图4是本发明任务调度装置实施例的结构图。
具体实施方式
本发明采用基于数据状态来进行任务调度的思路。数据状态,即数据的存在状态(是否就绪),将任务视为数据处理单元,只关注任务所依赖的数据和输出的数据,不关注任务的状态以及任务之间的关系。是否启动一个任务的唯一判断依据就是该任务所依赖的数据是否就绪。以下结合附图对本发明进行详细说明。
如图1所示,本发明提供一种任务调度方法实施例,包括以下步骤:
步骤101,从第一任务的任务配置文件中解析得到任务配置项;
步骤102,根据任务配置项查询第一任务完成的依赖条件;
步骤103,根据第一任务完成的依赖条件调度第一任务。
本实施例中,通过对任务执行的依赖条件进行判断,来对任务进行执行调度,无需维护任务之间的关系,降低了系统的复杂度,提升系统效率;使得大规模任务群的调度管理得以实现;最大程度减少任务空闲等待时间,提高系统的效率。
实际操作中,步骤101中,从任务(Job)的任务配置文件(JobConfig)中解析任务配置项,并将其装配成可执行的任务脚本(新任务Task)后加入新任务队列(NewTaskList)。
步骤103中,轮询NewTaskList中的所有任务,将依赖条件准备就绪的任务从新任务队列中迁移到准备队列(ToRunList)中,直到新任务队列为空。
例如:当前的新任务为T1,则根据T1的依赖任务名称T2,从任务完成队列中查询所依赖的任务,查询结果分两种情况:
(1)如果得到的T2为空,表示T2还未执行,则放弃T1的条件判断,转入下一新任务条件判断;
(2)如果T2不为空,判断T2的完成状态:
如果完成状态为“失败”或“放弃”,则放弃T1的条件判断,并将T1的完成状态设为“放弃”后加入完成队列(FinisedList);
如果状态为“成功”,则判断T1的依赖条件,如果条件满足,则将任务加入ToRunList,否则,转入下一个新任务的判断。
当第一任务完成的依赖条件包括第二任务时,根据第二任务的状态调度第一任务,具体包括:
当第二任务的状态为未执行时,不执行第一任务;
当第二任务的状态为完成失败时,不执行第一任务;
当第二任务的状态为完成成功时,判断第一任务完成的其他依赖条件,当其他依赖条件满足时,执行第一任务。
本实施例中,当第一任务的完成需要依赖于第二任务的完成状态时,对第二任务的状态进行判断,仅当第二任务完成时,才将第一任务加入到准备队列,准备执行第一任务。这样,在大数据系统中,无需维护任务之间的关系,启动一个任务的唯一判断依据就是该任务所依赖的数据是否就绪,降低了系统的复杂度,提升系统效率;使得大规模任务群的调度管理得以实现;最大程度减少任务空闲等待时间,提高系统的效率。
优选地,如图2所示,该方法还包括:
步骤201,监控第一任务的执行结果;
步骤202,当第一任务完成后,设置第一任务的状态标识为完成,任务配置项中包含状态标识。
在任务族(JobFamily)中,每个任务都有可能是其他任务完成的依赖条件,因此对每个任务的执行结果进行监控,当任务完成时,修改任务的状态标识,以便判断以该任务为依赖条件的其他任务是否执行。这样,为上述任务调度的方法提供了支持,降低了系统的复杂度,提升系统效率,使得大规模任务群的调度管理得以实现,最大程度减少任务空闲等待时间,提高系统的效率。
同时,根据状态标识判断当前任务所在JobFamily中的所有成员是否都已经完成,如果都已经完成,则表明该Job已经完成,程序将结果反馈给外部程序。
优选地,如图3所示,该方法还包括:
步骤301,根据任务配置项获取第一任务所在的任务族的优先级作为第一任务的优先级,并获取第一任务的任务提交时间;
步骤302,根据第一任务完成的依赖条件、第一任务的优先级及第一任务的任务提交时间调度第一任务。
其中,步骤302具体包括:
当第一任务和其他任务的依赖条件都满足,且第一任务的优先级高于其他任务时,优先调度第一任务;
当第一任务和其他任务的依赖条件都满足,第一任务的优先级与其他任务相同时,且第一任务的任务提交时间先于其他任务时,优先调度第一任务;
当第一任务的优先级与其他任务相同,第一任务的依赖条件满足而其他任务的依赖条件未满足时,优先调度第一任务。
如下表1所示,依赖条件、任务优先级及任务提交时间这三个条件对任务的执行顺序影响如下:
表1
(优先级由高到低为一、二、三……)
从表1中可以看出,当两个任务的优先级相同且依赖条件都满足时,优先执行任务提交时间在先的任务。当优先级不同,但是其中一个任务的依赖条件没有满足,则不管任务提交时间谁在先,优先执行依赖条件已经满足的任务。当两个任务的优先级不同且依赖条件都满足,则不管任务提交时间谁在先,优先执行优先级较高的任务。
本实施例中,除了依赖条件外,还进一步根据任务优先级及任务提交时间来确定是否优先调度某一个任务。大数据系统中,任务的数量非常巨大,需要对任务的执行顺序进行管理,根据依赖条件、任务优先级及任务提交时间这三个条件来确定任务执行顺序,使得任务的调度顺序更加合理,任务执行效率更高,进一步减少任务等待时间,提高系统的效率。
另一方面,本发明还提供一种任务调度装置40,包括:
解析模块41,用于从第一任务的任务配置文件中解析得到任务配置项;
查询模块42,用于根据所述任务配置项查询所述第一任务完成的依赖条件;
调度模块43,用于根据所述第一任务完成的依赖条件调度所述第一任务。
优选地,当所述第一任务完成的依赖条件包括第二任务时,所述调度模块43,用于根据所述第二任务的状态调度所述第一任务,当所述第二任务的状态为未执行时,不执行所述第一任务;当所述第二任务的状态为完成失败时,不执行所述第一任务;当所述第二任务的状态为完成成功时,判断所述第一任务完成的其他依赖条件,当其他依赖条件满足时,执行所述第一任务。
优选地,该装置40还包括:
监控模块44,用于监控所述第一任务的执行结果;
设置模块45,用于当所述第一任务完成后,设置所述第一任务的状态标识为完成,所述任务配置项中包含所述状态标识。
优选地,该装置40还包括:
获取模块46,用于根据所述任务配置项获取所述第一任务所在的任务族的优先级作为所述第一任务的优先级,并获取所述第一任务的任务提交时间;
调度模块43,用于根据所述第一任务完成的依赖条件、所述第一任务的优先级及所述第一任务的任务提交时间调度所述第一任务。
优选地,调度模块43,用于当所述第一任务和其他任务的依赖条件都满足,且所述第一任务的优先级高于其他任务时,优先调度所述第一任务;当所述第一任务和其他任务的依赖条件都满足,所述第一任务的优先级与其他任务相同时,且所述第一任务的任务提交时间先于其他任务时,优先调度所述第一任务;当所述第一任务的优先级与其他任务相同,所述第一任务的依赖条件满足而其他任务的依赖条件未满足时,优先调度所述第一任务。
本实施例的任务调度装置,通过对任务执行的依赖条件进行判断,来对任务进行执行调度,无需维护任务之间的关系,降低了系统的复杂度,提升系统效率;使得大规模任务群的调度管理得以实现;最大程度减少任务空闲等待时间,提高系统的效率。
应说明的是:以上实施例仅用以说明本发明而非限制,本发明也并不仅限于上述举例,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。

Claims (10)

1.一种任务调度方法,其特征在于,包括:
从第一任务的任务配置文件中解析得到任务配置项;
根据所述任务配置项查询所述第一任务完成的依赖条件;
根据所述第一任务完成的依赖条件调度所述第一任务。
2.根据权利要求1所述的方法,其特征在于,当所述第一任务完成的依赖条件包括第二任务时,根据所述第二任务的状态调度所述第一任务,包括:
当所述第二任务的状态为未执行时,不执行所述第一任务;
当所述第二任务的状态为完成失败时,不执行所述第一任务;
当所述第二任务的状态为完成成功时,判断所述第一任务完成的其他依赖条件,当其他依赖条件满足时,执行所述第一任务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
监控所述第一任务的执行结果;
当所述第一任务完成后,设置所述第一任务的状态标识为完成,所述任务配置项中包含所述状态标识。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述任务配置项获取所述第一任务所在的任务族的优先级作为所述第一任务的优先级,并获取所述第一任务的任务提交时间;
根据所述第一任务完成的依赖条件、所述第一任务的优先级及所述第一任务的任务提交时间调度所述第一任务。
5.根据权利要求4所述的方法,其特征在于,根据所述第一任务完成的依赖条件、所述第一任务的优先级及所述第一任务的任务提交时间调度所述第一任务包括:
当所述第一任务和其他任务的依赖条件都满足,且所述第一任务的优先级高于其他任务时,优先调度所述第一任务;
当所述第一任务和其他任务的依赖条件都满足,所述第一任务的优先级与其他任务相同时,且所述第一任务的任务提交时间先于其他任务时,优先调度所述第一任务;
当所述第一任务的优先级与其他任务相同,所述第一任务的依赖条件满足而其他任务的依赖条件未满足时,优先调度所述第一任务。
6.一种任务调度装置,其特征在于,包括:
解析模块,用于从第一任务的任务配置文件中解析得到任务配置项;
查询模块,用于根据所述任务配置项查询所述第一任务完成的依赖条件;
调度模块,用于根据所述第一任务完成的依赖条件调度所述第一任务。
7.根据权利要求6所述的装置,其特征在于,当所述第一任务完成的依赖条件包括第二任务时,所述调度模块,用于根据所述第二任务的状态调度所述第一任务,当所述第二任务的状态为未执行时,不执行所述第一任务;当所述第二任务的状态为完成失败时,不执行所述第一任务;当所述第二任务的状态为完成成功时,判断所述第一任务完成的其他依赖条件,当其他依赖条件满足时,执行所述第一任务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
监控模块,用于监控所述第一任务的执行结果;
设置模块,用于当所述第一任务完成后,设置所述第一任务的状态标识为完成,所述任务配置项中包含所述状态标识。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
获取模块,用于根据所述任务配置项获取所述第一任务所在的任务族的优先级作为所述第一任务的优先级,并获取所述第一任务的任务提交时间;
所述调度模块,用于根据所述第一任务完成的依赖条件、所述第一任务的优先级及所述第一任务的任务提交时间调度所述第一任务。
10.根据权利要求9所述的装置,其特征在于,所述调度模块,用于当所述第一任务和其他任务的依赖条件都满足,且所述第一任务的优先级高于其他任务时,优先调度所述第一任务;当所述第一任务和其他任务的依赖条件都满足,所述第一任务的优先级与其他任务相同时,且所述第一任务的任务提交时间先于其他任务时,优先调度所述第一任务;当所述第一任务的优先级与其他任务相同,所述第一任务的依赖条件满足而其他任务的依赖条件未满足时,优先调度所述第一任务。
CN201310681601.9A 2013-12-12 2013-12-12 一种任务调度方法及装置 Pending CN104714838A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310681601.9A CN104714838A (zh) 2013-12-12 2013-12-12 一种任务调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310681601.9A CN104714838A (zh) 2013-12-12 2013-12-12 一种任务调度方法及装置

Publications (1)

Publication Number Publication Date
CN104714838A true CN104714838A (zh) 2015-06-17

Family

ID=53414207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310681601.9A Pending CN104714838A (zh) 2013-12-12 2013-12-12 一种任务调度方法及装置

Country Status (1)

Country Link
CN (1) CN104714838A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045832A (zh) * 2015-06-30 2015-11-11 北京奇艺世纪科技有限公司 一种数据采集方法及装置
CN106293920A (zh) * 2016-08-15 2017-01-04 北京票之家科技有限公司 任务调度方法及装置
CN106814993A (zh) * 2015-12-01 2017-06-09 广州神马移动信息科技有限公司 确定任务调度时间的方法、确定任务执行时间的方法和设备
CN106844055A (zh) * 2017-01-25 2017-06-13 北京百分点信息科技有限公司 一种任务的执行方法和装置
CN106970834A (zh) * 2017-01-20 2017-07-21 阿里巴巴集团控股有限公司 任务处理的方法及装置
CN109542616A (zh) * 2018-10-26 2019-03-29 深圳点猫科技有限公司 一种教育系统的多节点间数据计算的调度方法及电子设备
CN110134499A (zh) * 2019-03-29 2019-08-16 新智云数据服务有限公司 任务调度方法、任务调度系统、存储介质和计算机设备
CN110837412A (zh) * 2019-11-15 2020-02-25 中国建设银行股份有限公司 一种作业就绪状态判断方法、装置、设备和存储介质
CN111090665A (zh) * 2019-11-15 2020-05-01 广东数果科技有限公司 一种数据任务调度方法及调度系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI221250B (en) * 2002-03-07 2004-09-21 Toshiba Corp Multi-processor system
WO2010148139A2 (en) * 2009-06-16 2010-12-23 Applied Materials, Inc. Counter and timer constraints
US20100333109A1 (en) * 2009-06-30 2010-12-30 Sap Ag System and method for ordering tasks with complex interrelationships
CN102521056A (zh) * 2011-12-28 2012-06-27 用友软件股份有限公司 任务分配装置和任务分配方法
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI221250B (en) * 2002-03-07 2004-09-21 Toshiba Corp Multi-processor system
WO2010148139A2 (en) * 2009-06-16 2010-12-23 Applied Materials, Inc. Counter and timer constraints
US20100333109A1 (en) * 2009-06-30 2010-12-30 Sap Ag System and method for ordering tasks with complex interrelationships
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及系统
CN102521056A (zh) * 2011-12-28 2012-06-27 用友软件股份有限公司 任务分配装置和任务分配方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045832A (zh) * 2015-06-30 2015-11-11 北京奇艺世纪科技有限公司 一种数据采集方法及装置
CN105045832B (zh) * 2015-06-30 2018-08-07 北京奇艺世纪科技有限公司 一种数据采集方法及装置
CN106814993A (zh) * 2015-12-01 2017-06-09 广州神马移动信息科技有限公司 确定任务调度时间的方法、确定任务执行时间的方法和设备
CN106814993B (zh) * 2015-12-01 2019-04-12 广州神马移动信息科技有限公司 确定任务调度时间的方法、确定任务执行时间的方法和设备
CN106293920A (zh) * 2016-08-15 2017-01-04 北京票之家科技有限公司 任务调度方法及装置
CN106970834A (zh) * 2017-01-20 2017-07-21 阿里巴巴集团控股有限公司 任务处理的方法及装置
CN106844055A (zh) * 2017-01-25 2017-06-13 北京百分点信息科技有限公司 一种任务的执行方法和装置
CN106844055B (zh) * 2017-01-25 2020-02-28 北京百分点信息科技有限公司 一种任务的执行方法和装置
CN109542616A (zh) * 2018-10-26 2019-03-29 深圳点猫科技有限公司 一种教育系统的多节点间数据计算的调度方法及电子设备
CN110134499A (zh) * 2019-03-29 2019-08-16 新智云数据服务有限公司 任务调度方法、任务调度系统、存储介质和计算机设备
CN110837412A (zh) * 2019-11-15 2020-02-25 中国建设银行股份有限公司 一种作业就绪状态判断方法、装置、设备和存储介质
CN111090665A (zh) * 2019-11-15 2020-05-01 广东数果科技有限公司 一种数据任务调度方法及调度系统

Similar Documents

Publication Publication Date Title
CN104714838A (zh) 一种任务调度方法及装置
CN106802826B (zh) 一种基于线程池的业务处理方法及装置
CN102063336B (zh) 一种分布式计算多应用功能异步并发调度方法
US20090094605A1 (en) Method, system and program products for a dynamic, hierarchical reporting framework in a network job scheduler
CN110908788B (zh) 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质
WO2014187412A1 (zh) 消息处理线程的控制方法及装置
CN107105009B (zh) 基于Kubernetes系统对接工作流引擎的作业调度方法和装置
WO2020181813A1 (zh) 一种基于数据处理的任务调度方法及相关设备
CN101770402B (zh) MapReduce系统中的Map任务调度方法、设备及系统
CN104915407A (zh) 一种基于Hadoop多作业环境下的资源调度方法
CN112114950A (zh) 任务调度方法和装置、以及集群管理系统
WO2012037760A1 (zh) 提升告警处理效率的方法、服务器及系统
CN110471758A (zh) 一种网络分析应用多用户并发作业调度系统及方法
CN111190691A (zh) 适用于虚拟机的自动迁移方法、系统、装置及存储介质
CN107316124B (zh) 大数据环境下大规模事务型作业调度与处理通用系统
CN104536827A (zh) 一种数据调度方法和装置
CN101751288A (zh) 应用进程调度的方法、设备及系统
CN102902589A (zh) 一种集群mic作业的管理及调度方法
CN110955506A (zh) 一种分布式作业调度处理方法
CN103810272A (zh) 一种数据处理方法和系统
CN106155803A (zh) 一种基于信号量的线程池共享方法及系统
CN105260238A (zh) 一种多进程提升性能部署的方法
CN113268318A (zh) 一种任务调度的方法和分布式系统
EP3018581B1 (en) Data staging management system
CN106802825B (zh) 一种基于实时系统的动态任务调度方法与系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150617