CN104243617A - 一种异构集群中面向混合负载的任务调度方法及系统 - Google Patents
一种异构集群中面向混合负载的任务调度方法及系统 Download PDFInfo
- Publication number
- CN104243617A CN104243617A CN201410543294.2A CN201410543294A CN104243617A CN 104243617 A CN104243617 A CN 104243617A CN 201410543294 A CN201410543294 A CN 201410543294A CN 104243617 A CN104243617 A CN 104243617A
- Authority
- CN
- China
- Prior art keywords
- task
- machine
- constraint
- soft
- attribute
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000008569 process Effects 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 4
- 238000010168 coupling process Methods 0.000 claims 4
- 238000005859 coupling reaction Methods 0.000 claims 4
- 238000001914 filtration Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 7
- 238000011160 research Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004451 qualitative analysis Methods 0.000 description 3
- 238000004445 quantitative analysis Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- JKMBMIMLVFMXRW-LYYFRFARSA-N epicocconone Chemical compound C1=C2C[C@@H](CO)OC=C2C(=O)[C@]2(C)C1=C(C(/O)=C/C(=O)/C=C/C=C/C=C/C)C(=O)O2 JKMBMIMLVFMXRW-LYYFRFARSA-N 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种异构集群中面向混合负载的任务调度方法及系统,包括以下步骤:资源调度器接收机器心跳,维护机器的属性簇;作业管理器接收并解析作业,获得若干个任务;作业管理器为任务设置属性簇和约束需求,并将任务信息发送给资源管理器;资源调度器为任务匹配满足约束且最优的机器,并将任务与机器的匹配关系返回给作业管理器;作业管理器将任务下发到匹配机器上的执行器上,执行任务。本发明通过一种易拓展的约束描述方法来表示异构化的机器属性和任务需求,在此基础上,将硬约束作为过滤标准,将软约束作为选择标准,为任务分配最优机器,显著提高了任务的执行效率和系统的整体性能。
Description
技术领域
本发明涉及一种异构集群中面向混合负载的任务调度方法及系统,属于计算机并行计算领域。
背景技术
近年来,集群机器表现出日益显著的异构化特征。现代集群往往规模较大,运行周期较长,甚至可能分布于不同的地理位置。在整个生命周期中,集群常常需要更新机器。此外,在集群整合的场景下,集群管理员可能将若干个不同批次的小型集群整合为一个大型集群。考虑到上述情况,集群的硬件和软件很可能存在一定差异。
另一方面,随着云计算的不断发展,在同一集群上运行混合负载也已经成为一种趋势,这具有诸多好处,例如提高资源利用率、共享数据、降低运维成本等。具体来说,集群上可能运行着多种不同类型的任务,包括科学计算、大规模的数据分析、长时间运行的互联网服务,以及软件开发测试等。
任务调度是指为任务分配资源,即将任务放置到机器上。可以说任务和机器是任务调度中两个重要角色。在传统应用场景中,任务和机器都是单一同构的,因此调度只需考虑基本的资源需求,例如基于slot的资源分配(云数据中心虚拟资源管理研究综述[J].计算机应用研究,2012,29(7):2411-2415.)。但是随着集群和负载的不断异构化,机器属性和任务需求发生了很大变化,并非所有的机器都能满足任务的约束需求,任务调度必须考虑各种约束:例如图像处理任务必须运行在具有GPU的机器上,一些任务只能运行在特定内核版本的机器上,数据分析任务应优先运行在存储相关数据的机器上等等。目前,考虑约束的任务调度是该领域的重要挑战,如何通过一种可拓展的方式来描述种类繁多的约束,以及如何根据约束将任务调度到最优的机器上,已经成为异构环境中任务调度的关键问题。
一些研究成果和开源软件开始关注考虑约束的任务调度。Hadoop YARN在进行任务调度时会考虑数据本地性这一约束,即优先将任务调度到存放相应数据的机器上(参见Vavilapalli V K,Murthy A C,Douglas C,et al.Apache hadoop yarn:Yet another resourcenegotiator[C]//Proceedings of the 4th annual Symposium on Cloud Computing.ACM,2013:5.)。流式计算框架Storm会优先将频繁通信的任务调度到相同或相近的机器上(参见Aniello L,Baldoni R,Querzoni L.Adaptive online scheduling in storm[C]//Proceedings of the7th ACM international conference on Distributed event-based systems.ACM,2013:207-218.)。Spark在DAG计算场景中,会将后序任务尽量调度到前序任务输出数据所在的机器上(参见The Apache Software Foundation.Spark Lightning-fast clustercomputing[EB/OL].(2012-1-10)[2014-9-5].https://spark.apache.org/.)。在数据本地性和公平性存在冲突的场景下,可以使用延迟调度进行权衡,这种方法取得了较好的效果(参见Zaharia M,Borthakur D,Sen Sarma J,et al.Delay scheduling:a simple technique forachieving locality and fairness in cluster scheduling[C]//Proceedings of the 5th Europeanconference on Computer systems.ACM,2010:265-278.)。上述研究考虑了一些具体的约束特例,但是约束种类是多样化的,实际工作中的集群调度器通常需要调度不同种类的任务、处理各种各样的约束。上述研究没有充分考虑任务与机器的异构化特征,没有提出一种可拓展的约束调度机制。
目前通用的任务调度方法仍然默认任务和机器是同构的,在调度过程中不考虑约束,仅考虑基本的资源匹配。但是,由于任务和机器的异构化,任务调度必须考虑各种约束。现有方法不能描述种类繁多的约束,也不能根据约束将任务调度到最优的机器上,这会导致任务无法正常执行或者运行时间明显变长,严重影响了任务的执行效率和任务调度系统的整体性能。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种异构集群中面向混合负载的任务调度方法及系统,考虑约束的任务调度,可以根据约束将任务调度最优机器上,提高了任务的执行效率和系统整体性能。
本发明技术解决方案:一种异构集群中面向混合负载的任务调度方法,包括以下步骤:
步骤1,资源调度器接收机器心跳,维护机器的属性簇;所述机器心跳是由执行器定时发送给资源调度器的、心跳内容为机器的属性簇;
步骤2,作业管理器接收并解析作业,获得若干个任务;
步骤3,作业管理器为任务设置属性簇和约束需求,然后将任务信息发送给资源调度器;
步骤4,资源调度器收到任务信息后,为任务匹配满足约束且最优的机器,并将任务与机器的匹配关系返回给作业管理器;
步骤5,作业管理器接收到任务与机器的匹配关系后,将任务下发到匹配机器上的执行器上,执行任务。
进一步地,所述步骤1提到的机器的属性簇包括多个键值(Key-Value)对,其中键表示机器属性,值则表示属性的具体值,其中属性包括机器主机名、IP地址、机器类型、机器架构、操作系统、CPU总数、内存总量、可用CPU、可用内存量、约束估值等。
进一步地,所述步骤3提到的约束需求包括硬约束和软约束。硬约束是任务执行的必要条件,在调度过程中必须得到满足,对于硬约束的处理属于定性分析。软约束是任务执行的偏好条件,应尽量满足以提升任务执行效率,不过如果无法满足则可以忽略,以免造成资源浪费和任务执行的延迟,对软约束的处理属于定量分析。
进一步地,所述步骤3具体包括以下步骤:
步骤3.1:为任务设置易拓展的属性簇,属性簇包括多个键值(Key-Value)对,其中键表示任务的属性,值则表示属性的具体值,任务的属性簇包括任务标示、执行命令、所需CPU资源、所需内存资源等;
步骤3.2:为任务设置硬约束需求,通过一个布尔表达式来表示任务的硬约束需求,如果存在多个硬约束,则将它们做“与运算”,仍然可以通过一个布尔表达式来表示多个硬约束需求;
步骤3.3:为任务设置软约束需求,通过软约束需求链表来表示任务的多个软约束需求,链表中包含若干个元素,每个元素包括一个布尔表达式和一个估值,布尔表达式表明具体的软约束需求,估值用以量化满足软约束需求带来的执行效率的提升;
步骤3.4:作业管理器将任务的属性簇和软硬约束需求发送给资源调度器,请求分配机器。
进一步地,所述步骤4具体包括以下步骤:
步骤4.1:将接收到的任务记为“待调度任务”,初始化机器集合M,将所有机器放入M中,初始化备选机器列表为空;
步骤4.2:从机器集合M中取出一个机器,记为“备选机器”,根据机器和任务的信息,计算得到待调度任务硬约束需求的值;
步骤4.3:判断待调度任务的硬约束需求是否为真,如果为真,则将备选机器加入到备选机器列表中,并根据机器信息和任务的软约束链表,计算得到备选机器的约束估值;
步骤4.4:从机器集合M去除备选机器,判断机器集合M是否为空,不为空则转至步骤4.2;
步骤4.5:以约束估值为标准,在备选机器列表中选择约束估值最大的机器,记为待调度任务的匹配机器。
进一步地,所述步骤4.3中,计算备选机器的约束估值时进一步包括:
将备选机器的约束估值初始化为0;
遍历待调度任务的软约束链表,对于每个元素,计算得到其软约束需求,如果软约束需求为真,则当前的约束估值加上该软约束元素的估值,最后得到备选机器的约束估值。
为解决上述技术问题,本发明还提出了一种异构集群中面向混合负载的任务调度系统,包括作业管理器,资源调度器和执行器;
所述作业管理器和资源调度器部署在主控节点上,作业管理器用于管理作业和任务,为任务设置属性簇和软硬约束需求,并将任务信息发送给资源调度器,请求任务所需的机器;
资源调度器用于接收执行器定时发送的机器心跳,在维护整个集群机器心跳的基础上,资源调度器可以接收作业管理器发送的任务信息,为任务匹配满足约束且最优的机器;
所述执行器部署在除主控节点外的其他所有机器上,定时向资源调度器上报机器心跳,并接收作业管理器下发的任务指令,负责具体执行任务。
本发明与现有技术相比的优点在于:
(1)本发明提出的任务调度方法及系统,通过一种易拓展的约束描述方法来表示异构化的机器属性和任务需求,在此基础上,区别对待硬约束和软约束,将硬约束作为过滤标准,将软约束作为选择标准,为任务匹配满足硬约束且最优的机器。本发明在任务调度过程中综合考虑各种约束,显著提高了任务的执行效率和系统的整体性能。
(2)测试了满足约束的任务调度和无视约束的任务调度策略下的任务执行效率,以此来验证本发明提出的考虑约束的任务调度方法的有效性。图11记录了虚拟机应用场景下的任务启动时间,数据显示,满足约束的任务启动时间明显短于无视约束的任务启动时间,具体的加速比与镜像大小有关,在本组实验中为6.91到24.18不等。图12记录了任务间相互通信的应用场景下的任务完成时间,数据显示,满足约束的任务完成时间同样明显短于无视约束的任务完成时间,具体的加速比与数据规模、网络状态有关,在本组实验中约为2.25。总体而言,本发明提出的任务调度方法及系统可以处理多种约束情况,并显著提高任务执行效率。
附图说明
图1为本发明实施例中任务调度方法及系统的原理示意图;
图2为本发明实施例中任务调度方法的流程图;
图3为本发明实施例中机器属性簇的示意图;
图4为本发明实施例中设置任务属性簇和约束需求的流程图;
图5为本发明实施例中任务属性簇的示意图;
图6为本发明实施例中任务硬约束的示意图;
图7为本发明实施例中任务软约束链表的示意图;
图8为本发明实施例中为任务分配最优机器的流程图;
图9为本发明实施例中计算任务硬约束的示意图;
图10为本发明实施例中计算机器约束估值的示意图;
图11为本发明实施例中虚拟机应用场景下的任务启动时间;
图12为本发明实施例中任务间相互通信应用场景下的任务完成时间。
具体实施方式
以下结合附图和实施例对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明实施例实现了一个运行在异构集群上的面向混合负载的任务调度系统,该系统采用典型的主从(Master-Slave)架构,主控部分(Master)包括两个核心进程作业管理器(Jobs Manager)和资源调度器(Resource Scheduler),二者部署在主控物理节点上。从部分(Slave)包括一个核心进程执行器(Executor),部署在主控物理节点以外的其他所有机器上。
作业管理器负责管理作业与任务,一个作业包括若干个任务,一组作业ID和任务ID可以唯一标示一个任务。作业管理器接收并解析用户提交的作业,根据作业参数为任务设置属性簇和软硬约束,并将任务信息发送给资源调度器,请求分配所需的机器。在获得匹配机器后,作业管理器再将任务下发到指定机器上,监控任务的执行状态并进行容错。
资源调度器负责接收执行器定时发送的机器心跳(Heartbeat)信息,这些心跳信息包含着机器的属性簇。在维护整个集群机器属性簇的基础上,资源调度器可以接收作业管理器发送的任务信息,为任务分配满足约束且最优的机器,并将任务与机器的匹配关系作为结果,返回给作业调度器。
执行器负责接收作业管理器的指令,启动执行任务,向作业管理器报告任务状态;另一方面,执行器定时将该机器的属性簇通过心跳形式上报给资源调度器。对于每个任务,执行器首先创建一个虚拟化环境,然后在虚拟化环境内部执行任务。
如图2所示,本实施例中,任务调度方法可以包括如下步骤:
步骤201,资源调度器接收机器心跳,维护机器的属性簇;
步骤202,作业管理器接收并解析作业,获得若干个任务;
步骤203,作业管理器为任务设置属性簇和约束需求,然后将任务信息发送给资源管理器;
步骤204,资源调度器收到任务信息后,为任务匹配满足约束且最优的机器,并将任务与机器的匹配关系返回给作业管理器;
步骤205,作业管理器接收到任务与机器的匹配关系后,将任务下发到匹配机器上的执行器上,执行任务。
图3为本发明实施例中机器属性簇的示意图。图3表明了某台机器的属性簇及相应的值,机器的属性簇是机器心跳的具体内容,由执行器定时发送给资源调度器。属性簇包括多个键值(Key-Value)对,其中键表示机器属性,值则表示属性的具体值,其中机器属性包括机器主机名、IP地址、机器类型、机器架构、操作系统、CPU总数、内存总量、可用CPU、可用内存量、约束估值等,表1列举了机器的属性簇。在图3所示例子中,该机器的主机名为“Blade10”、IP地址为“192.168.1.160”、机器类型为“A”,机器架构为“X86_64”,此外图3还表明了机器的其他属性。
表1 机器的属性簇
属性名 | 说明 | 数据类型 |
ATTR_MACHINE | 机器主机名 | string |
ATTR_IP | IP地址 | string |
ATTR_TYPE | 机器类型 | string |
ATTR_ARCH | 机器架构 | string |
ATTR_OS | 操作系统 | string |
ATTR_TOTAL_CPU | CPU总数 | double |
ATTR_TOTAL_MEM | 内存总量 | int |
ATTR_AVAIL_CPU | 可用CPU | double |
ATTR_AVAIL_MEM | 可用内存量 | int |
ATTR_AVG_LOAD | 平均负载 | double |
CON_VALUE | 约束估值 | int |
图4为本发明实施例中设置任务属性簇和约束需求的流程图。特别说明一点,约束需求包括硬约束和软约束。硬约束是任务执行的必要条件,在调度过程中必须得到满足,对于硬约束的处理属于定性分析。软约束是任务执行的偏好条件,应尽量满足以提升任务执行效率,不过如果无法满足则可以忽略,以免造成资源浪费和任务执行的延迟,对软约束的处理属于定量分析。如图4所示,作业管理器设置任务属性簇和约束需求的步骤如下:
步骤401:为任务设置易拓展的属性簇,属性簇包括多个键值对,其中键表示任务的属性,值则表示属性的具体值,具体包括任务标示、执行命令、所需资源等;
步骤402:为任务设置硬约束需求,通过一个布尔表达式来表示任务的硬约束需求;
进一步地,任务可能存在多个硬约束,可以直接将多个硬约束做“与运算”,这样仍然可以通过一个布尔表达式来表示多个硬约束需求;
步骤403:为任务设置软约束需求,通过软约束需求链表来表示任务的多个软约束需求,链表中包含若干个元素,每个元素包括一个布尔表达式和一个估值,其中布尔表达式表明具体的软约束需求,估值用以量化满足软约束需求带来的执行效率的提升。
图5为本发明实施例中任务属性簇的示意图。图5表明了某任务的属性簇及相应的值,任务的属性簇由作业管理器负责设置。与机器属性簇类似,任务的属性簇也包括多个键值(Key-Value)对,其中键表示任务属性,值则表示属性的具体值,其中任务属性包括作业ID、任务ID、虚拟化类型、执行命令、所需CPU、所需内存等,表2列举了任务的属性簇和约束需求。在图5所示例子中,该任务的作业ID为1、任务ID为2,虚拟化类型为“KVM”、执行命令为“run.sh”、所需CPU为2、所需内存为2048(MB)。
表2 任务的属性簇和约束需求
属性/约束名 | 说明 | 数据类型 |
ATTR_JOB_ID | 作业ID | int |
ATTR_TASK_ID | 任务ID | int |
ATTR_VMTYPE | 虚拟化类型 | string |
ATTR_EXE_PATH | 执行命令 | string |
ATTR_NEED_CPU | 所需CPU | double |
ATTR_NEED_MEM | 所需内存 | int |
HARD_CONSTRAINT | 硬约束需求 | bool表达式 |
SOFT_CON_LIST | 软约束链表 | 链表 |
图6为本发明实施例中任务硬约束的示意图。硬约束是任务执行的必要条件,其处理结果只能是满足或者不满足两种情况,因此处理硬约束属于定性分析。一个任务可能存在多个硬约束,我们可以直接对其做“与运算”。
在图6所示例子中,任务具有四个硬约束,每个硬约束都可以通过一个布尔表达式来表示。其中,“ATTR_AVAIL_CPU>=ATTR_NEED_CPU”表示机器当前可用的CPU应当大于等于任务所需的CPU,“ATTR_AVAIL_MEM>=ATTR_NEED_MEM”表示机器当前可用的内存应当大于等于任务所需的内存,“ATTR_ARCH==X86_64”表示机器的架构应当是“X86_64”,“ATTR_OS==Centos 6.3”表示机器的操作系统应当是“Centos6.3”。四个硬约束中的前两个属于资源层面的约束需求,保证机器中包含任务所需的资源;后两个则属于非资源层面的约束需求。最后,我们可以将任务的四个硬约束直接相与,得到HARD_CONSTRAINT=(ATTR_AVAIL_CPU>=ATTR_NEED_CPU)&&(ATTR_AVAIL_MEM>=ATTR_NEED_MEM)&&(ATTR_ARCH==X86_64)&&(ATTR_OS==Centos6.3),这样仍然可以通过一个布尔表达式来表示任务的多个硬约束需求。
图7为本发明实施例中任务软约束链表的示意图。软约束是任务执行的偏好条件,应当尽量得到满足,但不是强制性需求。对于软约束的处理并非只有满足或不满足两种情况,应当充分考虑多个软约束的满足程度,以及满足各个软约束对任务执行带来的性能提升,因此对于软约束的处理属于定量分析。本发明通过软约束需求链表来表示任务的多个软约束需求,链表中包含若干个元素,每个元素包括一个布尔表达式和一个估值,其中布尔表达式表明具体的软约束需求,估值用以量化满足软约束需求带来的执行效率的提升。
在图7所示例子中,任务具有三个软约束,第一个软约束的具体需求是“ATTR_IP in(192.168.1.160,192.168.170,192.168.1.180)”,表明机器的IP地址最好是上述三个IP地址之一,相应估值是50,表明满足这个软约束可以带来50的性能提升;第二个软约束的具体需求是“ATTR_TYPE==A”,表明机器类型最好是A型,相应估计是30,表明满足这个软约束可以带来30的性能提升;第三个软约束的具体需求是“ATTR_AVG_LOAD<=0.5”,表明机器的平均负载最好小于等于0.5,相应估值为20,表明满足这个软约束可以带来20的性能提升。
图8为本发明实施例中为任务分配最优机器的流程图。如图8所示,本实施例中,为任务分配约束且最优的机器包括如下步骤:
步骤801:将接收到的任务记为“待调度任务”,初始化机器集合M,将所有机器放入M中,初始化备选机器列表为空;
步骤802:从机器集合M中取出一个机器,记为“备选机器”,根据机器和任务的信息,计算得到待调度任务硬约束需求的值;
步骤803:判断任务硬约束是否为真,如果为真,则转至步骤804;如果不为真,则转至步骤805;
步骤804:将备选机器加入到备选机器列表中,并根据机器信息和任务的软约束链表,计算得到备选机器的约束估值;
步骤805:从机器集合M中取出备选机器;
步骤806:判断机器集合M是否为空,如果为空,则转至步骤807;如果不为空,则转至步骤802;
步骤807:以约束估值为标准,在备选机器列表中选择约束估值最大的机器,记为待调度任务的匹配机器。
图9为本发明实施例中计算任务硬约束的示意图。在图9所示的例子中,机器的属性簇记录着该机器的各种属性,包括机器主机名为“Blade10”、机器架构为“x86_64”、操作系统为“Centos6.3”、可用CPU为13个核、可用内存为23552MB等。同时,任务信息记录其资源需求为2个CPU核、2GB内存,硬约束需求为机器可用资源必须大于任务所需资源、机器架构必须是“X86_64”、操作系统必须是“Centos6.3”,其硬约束需求可写作HARD_CONSTRAINT=(ATTR_AVAIL_CPU>=ATTR_NEED_CPU)&&(ATTR_AVAIL_MEM>=ATTR_NEED_MEM)&&(ATTR_ARCH==X86_64)&&(ATTR_OS==Centos6.3)。根据机器和任务属性簇,可以计算得到任务硬约束需求(HARD_CONSTRAINT)的布尔返回值为真,这表明该机器满足任务的硬约束需求。
图10为本发明实施例中计算机器约束估值的示意图。本发明为每个机器维护一个约束估值(CON_VALUE),用以量化机器与任务软约束的总体匹配程度,计算机器约束估值的大体步骤为:先初始化机器的约束估值为0;然后遍历任务的软约束链表,对于每个元素,计算得到其软约束需求,如果软约束需求为真,则将约束估值加上该软约束相应的估值;最后得到的约束估值即为所求。
在图10所示的例子中,机器属性簇中记录着其IP地址为“192.168.1.160”、机器类型为“B”、平均负载为0.3,最初其约束估值为0。然后遍历任务的软约束链表,对于软约束1,软约束需求:ATTR_IP in(192.168.1.160,192.168.170,192.168.1.180)为真,所以约束估值会加上相应的估值50;对于软约束2,软约束需求(ATTR_TYPE==A)不为真;对于软约束3,软约束需求(ATTR_AVG_LOAD<=0.5)为真,所以约束估值也会加上相应的估值20,最终得到约束估值为70。
图11为本发明实施例中虚拟机应用场景下的任务启动时间。在图11所示的例子中,记录了在不同虚拟机镜像大小的情况下,满足约束和无视约束的任务启动时间。其中,实线代表满足约束的任务启动时间,虚线代表无视约束的任务启动时间。数据显示,满足约束的任务启动时间明显短于无视约束的任务启动时间,具体的加速比与镜像大小有关,在本组实施例中加速比为6.91到24.18不等。
图12为本发明实施例中任务间相互通信应用场景下的任务完成时间。在图12所示的例子中,记录了在不同数据规模的情况下,满足约束和无视约束的任务完成时间。其中,实线代表满足约束的任务完成时间,虚线代表无视约束的任务完成时间。数据显示,满足约束的任务完成时间明显短于无视约束的任务完成时间,具体的加速比与数据规模、网络状态有关,在本实施例中约为2.25。总体而言,本发明提出的任务调度方法可以处理多种约束情况,并显著提高任务执行效率。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (7)
1.一种异构集群中面向混合负载的任务调度方法,其特征在于实现步骤如下:
步骤1,资源调度器接收机器心跳,维护机器的属性簇;所述机器心跳是由执行器定时发送给资源调度器的、心跳内容为机器的属性簇;
步骤2,作业管理器接收并解析作业,获得若干个任务;
步骤3,作业管理器为任务设置属性簇和约束需求,然后将任务信息发送给资源调度器;
步骤4,资源调度器收到任务信息后,为任务匹配满足约束且最优的机器,并将任务与机器的匹配关系返回给作业管理器;
步骤5,作业管理器接收到任务与机器的匹配关系后,将任务下发到匹配机器上的执行器上,执行任务。
2.根据权利要求1所述的异构集群中面向混合负载的任务调度方法,其特征在于:所述步骤1中,所述机器的属性簇包括多个键值(Key-Value)对,其中键表示机器属性,值则表示属性的具体值,其中属性包括机器主机名、IP地址、机器类型、机器架构、操作系统、CPU总数、内存总量、可用CPU、可用内存量、约束估值。
3.根据权利要求1所述的异构集群中面向混合负载的任务调度方法,其特征在于:所述步骤3中的约束需求包括硬约束和软约束;所述硬约束是任务执行的必要条件,在调度过程中必须得到满足;所述软约束是任务执行的偏好条件,应尽量满足以提升任务执行效率,不过如果无法满足则可以忽略,以免造成资源浪费和任务执行的延迟。
4.根据权利要求1所述的异构集群中面向混合负载的任务调度方法,其特征在于:所述步骤3具体实现步骤如下:
步骤3.1:为任务设置易拓展的属性簇,所述属性簇包括多个键值(Key-Value)对,其中键表示任务的属性,值则表示属性的具体值,任务的属性簇包括任务标示、执行命令、所需CPU资源、所需内存资源;
步骤3.2:为任务设置硬约束需求,通过一个布尔表达式来表示任务的硬约束需求,如果存在多个硬约束,则将它们做“与运算”,仍然能够通过一个布尔表达式来表示多个硬约束需求;
步骤3.3:为任务设置软约束需求,通过软约束需求链表来表示任务的多个软约束需求,链表中包含若干个元素,每个元素包括一个布尔表达式和一个估值,布尔表达式表明 具体的软约束需求,估值用以量化满足软约束需求带来的执行效率的提升;
步骤3.4:作业管理器将任务的属性簇和软硬约束需求发送给资源调度器,请求分配机器。
5.根据权利要求1所述的异构集群中面向混合负载的任务调度方法,其特征在于:所述步骤4具体实现步骤如下:
步骤4.1:将接收到的任务记为“待调度任务”,初始化机器集合M,将所有机器放入M中,初始化备选机器列表为空;
步骤4.2:从机器集合M中取出一个机器,记为“备选机器”,根据机器和任务的信息,计算得到待调度任务硬约束需求的值;
步骤4.3:判断待调度任务的硬约束需求是否为真,如果为真,则将备选机器加入到备选机器列表中,并根据机器信息和任务的软约束链表,计算得到备选机器的约束估值;
步骤4.4:从机器集合M去除备选机器,判断机器集合M是否为空,不为空则转至步骤4.2;
步骤4.5:以约束估值为标准,在备选机器列表中选择约束估值最大的机器,记为待调度任务的匹配机器。
6.根据权利要求1所述的异构集群中面向混合负载的任务调度方法,其特征在于:所述步骤4.3中,计算备选机器的约束估值包括:
将备选机器的约束估值初始化为0;
遍历待调度任务的软约束链表,对于每个元素,计算得到其软约束需求,如果软约束需求为真,则当前的约束估值加上该软约束元素的估值,最后得到备选机器的约束估值。
7.一种异构集群中面向混合负载的任务调度系统,其特征在于包括:作业管理器、资源调度器和执行器;所述作业管理器和资源调度器部署在主控节点上,其中:
作业管理器用于管理作业和任务,为任务设置属性簇和软硬约束需求,并将任务信息发送给资源调度器,请求任务所需的机器;
资源调度器用于接收执行器定时发送的机器心跳,在维护整个集群机器心跳的基础上,资源调度器可以接收作业管理器发送的任务信息,为任务匹配满足约束且最优的机器;
所述执行器部署在除主控节点外的其他所有机器上,定时向资源调度器上报机器心跳,并接收作业管理器下发的任务指令,负责具体执行任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410543294.2A CN104243617B (zh) | 2014-10-14 | 2014-10-14 | 一种异构集群中面向混合负载的任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410543294.2A CN104243617B (zh) | 2014-10-14 | 2014-10-14 | 一种异构集群中面向混合负载的任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104243617A true CN104243617A (zh) | 2014-12-24 |
CN104243617B CN104243617B (zh) | 2017-10-27 |
Family
ID=52230945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410543294.2A Active CN104243617B (zh) | 2014-10-14 | 2014-10-14 | 一种异构集群中面向混合负载的任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104243617B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022670A (zh) * | 2015-07-17 | 2015-11-04 | 中国海洋大学 | 一种云计算平台中的异构分布式任务处理系统及其处理方法 |
CN105302643A (zh) * | 2015-10-14 | 2016-02-03 | 浪潮集团有限公司 | 一种作业调度的方法和自学习调度器 |
CN105589745A (zh) * | 2015-12-18 | 2016-05-18 | 中国科学院软件研究所 | 一种支持非均衡任务分配的动态漏洞挖掘系统和方法 |
CN107025141A (zh) * | 2017-05-18 | 2017-08-08 | 成都海天数联科技有限公司 | 一种基于大数据混合作业模型的调度方法 |
CN107357661A (zh) * | 2017-07-12 | 2017-11-17 | 北京航空航天大学 | 一种针对混合负载的细粒度gpu资源管理方法 |
CN107515784A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种在分布式系统中计算资源的方法与设备 |
CN107678752A (zh) * | 2017-08-31 | 2018-02-09 | 北京百度网讯科技有限公司 | 一种面向异构集群的任务处理方法及装置 |
CN109101339A (zh) * | 2018-08-15 | 2018-12-28 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
CN110012062A (zh) * | 2019-02-22 | 2019-07-12 | 北京奇艺世纪科技有限公司 | 一种多机房任务调度方法、装置及存储介质 |
CN111147546A (zh) * | 2019-11-29 | 2020-05-12 | 中科院计算技术研究所大数据研究院 | 一种边缘集群资源的处理方法及系统 |
CN114168283A (zh) * | 2021-12-02 | 2022-03-11 | 北京千帆阅文科技有限公司 | 一种分布式定时任务调度方法及系统 |
CN114787830A (zh) * | 2019-12-20 | 2022-07-22 | 惠普发展公司,有限责任合伙企业 | 异构集群中的机器学习工作负载编排 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271405A (zh) * | 2008-05-13 | 2008-09-24 | 武汉理工大学 | 基于QoS约束的双向分级网格资源调度方法 |
CN102495758A (zh) * | 2011-12-05 | 2012-06-13 | 中南大学 | 分布式高性能计算环境中实时任务的调度方法 |
US20140068049A1 (en) * | 2012-09-03 | 2014-03-06 | Bull Sas | Method and device for processing commands in a set of components of a computer system |
CN103631870A (zh) * | 2013-11-06 | 2014-03-12 | 广东电子工业研究院有限公司 | 一种用于大规模分布式数据处理的系统及其方法 |
-
2014
- 2014-10-14 CN CN201410543294.2A patent/CN104243617B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271405A (zh) * | 2008-05-13 | 2008-09-24 | 武汉理工大学 | 基于QoS约束的双向分级网格资源调度方法 |
CN102495758A (zh) * | 2011-12-05 | 2012-06-13 | 中南大学 | 分布式高性能计算环境中实时任务的调度方法 |
US20140068049A1 (en) * | 2012-09-03 | 2014-03-06 | Bull Sas | Method and device for processing commands in a set of components of a computer system |
CN103631870A (zh) * | 2013-11-06 | 2014-03-12 | 广东电子工业研究院有限公司 | 一种用于大规模分布式数据处理的系统及其方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022670B (zh) * | 2015-07-17 | 2018-03-13 | 中国海洋大学 | 一种云计算平台中的异构分布式任务处理系统及其处理方法 |
CN105022670A (zh) * | 2015-07-17 | 2015-11-04 | 中国海洋大学 | 一种云计算平台中的异构分布式任务处理系统及其处理方法 |
CN105302643A (zh) * | 2015-10-14 | 2016-02-03 | 浪潮集团有限公司 | 一种作业调度的方法和自学习调度器 |
CN105302643B (zh) * | 2015-10-14 | 2018-08-24 | 浪潮集团有限公司 | 一种作业调度的方法和自学习调度器 |
CN105589745A (zh) * | 2015-12-18 | 2016-05-18 | 中国科学院软件研究所 | 一种支持非均衡任务分配的动态漏洞挖掘系统和方法 |
CN107515784A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种在分布式系统中计算资源的方法与设备 |
CN107515784B (zh) * | 2016-06-16 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 一种在分布式系统中计算资源的方法与设备 |
CN107025141A (zh) * | 2017-05-18 | 2017-08-08 | 成都海天数联科技有限公司 | 一种基于大数据混合作业模型的调度方法 |
CN107025141B (zh) * | 2017-05-18 | 2020-09-01 | 成都海天数联科技有限公司 | 一种基于大数据混合作业模型的调度方法 |
CN107357661B (zh) * | 2017-07-12 | 2020-07-10 | 北京航空航天大学 | 一种针对混合负载的细粒度gpu资源管理方法 |
CN107357661A (zh) * | 2017-07-12 | 2017-11-17 | 北京航空航天大学 | 一种针对混合负载的细粒度gpu资源管理方法 |
US10977076B2 (en) | 2017-08-31 | 2021-04-13 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for processing a heterogeneous cluster-oriented task |
CN107678752A (zh) * | 2017-08-31 | 2018-02-09 | 北京百度网讯科技有限公司 | 一种面向异构集群的任务处理方法及装置 |
CN109101339B (zh) * | 2018-08-15 | 2019-05-31 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
CN109101339A (zh) * | 2018-08-15 | 2018-12-28 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
CN110012062A (zh) * | 2019-02-22 | 2019-07-12 | 北京奇艺世纪科技有限公司 | 一种多机房任务调度方法、装置及存储介质 |
CN110012062B (zh) * | 2019-02-22 | 2022-02-08 | 北京奇艺世纪科技有限公司 | 一种多机房任务调度方法、装置及存储介质 |
CN111147546A (zh) * | 2019-11-29 | 2020-05-12 | 中科院计算技术研究所大数据研究院 | 一种边缘集群资源的处理方法及系统 |
CN114787830A (zh) * | 2019-12-20 | 2022-07-22 | 惠普发展公司,有限责任合伙企业 | 异构集群中的机器学习工作负载编排 |
CN114168283A (zh) * | 2021-12-02 | 2022-03-11 | 北京千帆阅文科技有限公司 | 一种分布式定时任务调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104243617B (zh) | 2017-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104243617B (zh) | 一种异构集群中面向混合负载的任务调度方法及系统 | |
CN104951372B (zh) | 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法 | |
CN105956021B (zh) | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 | |
Jalaparti et al. | Network-aware scheduling for data-parallel jobs: Plan when you can | |
CN103530189B (zh) | 一种面向流式数据的自动伸缩及迁移的方法及装置 | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
CN104021040B (zh) | 基于时间约束条件下的云计算关联任务调度方法和装置 | |
CN103414761B (zh) | 一种基于Hadoop架构的移动终端云资源调度方法 | |
CN104050042B (zh) | Etl作业的资源分配方法及装置 | |
CN107222531B (zh) | 一种容器云资源调度方法 | |
CN104915407A (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
CN107291550B (zh) | 一种针对迭代应用的Spark平台资源动态分配方法及系统 | |
CN110187960A (zh) | 一种分布式资源调度方法及装置 | |
CN111190691A (zh) | 适用于虚拟机的自动迁移方法、系统、装置及存储介质 | |
CN103761146A (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN108021435A (zh) | 一种基于截止时间的具有容错能力的云计算任务流调度方法 | |
CN102999317B (zh) | 面向多租户的弹性多进程服务处理方法 | |
WO2020108337A1 (zh) | 一种cpu资源调度方法及电子设备 | |
CN112882828A (zh) | 基于slurm作业调度系统的昇腾处理器管理和调度方法 | |
Zhang et al. | A Spark Scheduling Strategy for Heterogeneous Cluster. | |
Elshater et al. | A study of data locality in YARN | |
Wang et al. | Dependency-aware network adaptive scheduling of data-intensive parallel jobs | |
CN115934362A (zh) | 面向深度学习的服务器无感知计算集群调度方法及产品 | |
CN110084507B (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
CN109976873A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |