CN104978228B - 一种分布式计算系统的调度方法和装置 - Google Patents
一种分布式计算系统的调度方法和装置 Download PDFInfo
- Publication number
- CN104978228B CN104978228B CN201410140064.1A CN201410140064A CN104978228B CN 104978228 B CN104978228 B CN 104978228B CN 201410140064 A CN201410140064 A CN 201410140064A CN 104978228 B CN104978228 B CN 104978228B
- Authority
- CN
- China
- Prior art keywords
- processing stage
- data
- task
- data block
- stage
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Abstract
本发明公开了一种分布式计算系统的调度方法和装置,以提高大数据处理时调度算法的公平性。所述方法包括:在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN;若分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由第二处理阶段的同一函数对数据处理;为第二处理阶段的各个任务分配资源以进行调度。如此,一方面,由于数据块分割成较小的数据块,处理时间大都在可控范围之内,从而能够提高调度的公平性;另一方面,当数据被分割成容量较小的数据块时,也可以保证足够多的并发作业,增强了分布式计算系统的并发性。
Description
技术领域
本发明涉及计算机网络领域,具体涉及一种分布式计算系统的调度方法和装置。
背景技术
分布式计算系统以Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)最为典型。HDFS是分布式计算的存储基石,Hadoop的分布式文件系统和其他分布式文件系统有很多类似的特质。分布式文件系统基本特点包括:对于整个集群有单一的命名空间;数据一致性,即适合一次写入多次读取的模型,客户端在文件没有被成功创建之前无法看到文件存在;文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,而且根据配置会由复制文件块来保证数据的安全性。
为了解决要处理生产型作业(数据分析、Hive)、大型批处理作业(数据挖掘、机器学习)和小型交互作业(Hive查询)等问题,同时为了满足不同用户提交的作业在计算时间、存储空间、数据流量和响应时间都有不同需求的情况下,使用Hadoop MapReduce框架能够应对多种类型作业并行执行,使得用户具有良好的体验,业界提出了公平调度器(FairScheduler)算法。所谓公平调度器,主要由作业池管理器、负载均衡器、任务选择器、权重调整器和作业调度更新线程等5大组件构成,其中,作业池管理器(PoolManager)主要负责以池的单位来管理用户提交的作业,这是因为每一个作业池中每次参与调度的作业的数量是由限制的,所以每一个作业必须对应一个唯一的作业池;负载均衡器(LoadManager)会根据当前集群的负载以及当前任务跟踪(TaskTracker)节点的负载情况来决定是否应该给该TaskTracker节点分配Map/Reduce任务;任务选择器(TaskSelector)负责从一个作业中选取一个Map/Reduce任务给TaskTracker节点;作业调度更新线程(UpdateThread)会每隔500ms更新一次可调度的作业集,在更新的过程中,它会调用权重调整器(WeightAdjuster)来更新每一个作业的权重。
然而,公平调度器的公平调度算法只是相对的。例如,现有的一种分布式计算系统的公平调度方法,例如,HDFS中的公平调度器提供的公平调度方法,其调度的粒度依赖于每个任务(Task)所处理的数据块的大小,即,对于小数据块,调度时分配的时间资源较短,对于大数据块,调度时分配的时间资源较长。
也就是说,上述现有的分布式计算系统的公平调度方法在数据块大小不均衡时,调度就不会是公平的了。例如,假设为处理一个数据块的任务(Task)分配10分钟的时间资源是调度公平的,那么,对于10M的数据块,公平调度器在调度时,为负责处理该10M的数据块的任务(Task)分配的时间资源小于10分钟(例如,8分钟),而对于1G的数据块,公平调度器在调度时,为负责处理该1G的数据块的任务(Task)分配的时间资源大于10分钟(例如,19分钟),那么,这种调度方法的不公平就体现在为处理数据块的任务分配的时间资源大小不等。
发明内容
本发明实施例提供一种分布式计算系统的调度方法和装置,以提高大数据处理时调度算法的公平性。
本发明实施例提供一种分布式计算系统的调度方法,所述方法包括:
在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
为所述第二处理阶段的各个任务分配资源以进行调度。
本发明另一实施例提供一种分布式计算系统的调度装置,所述装置包括:
第一数据分割模块,用于在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
第二处理模块,用于若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
资源分配模块,用于为所述第二处理阶段的各个任务分配资源以进行调度。
从上述本发明实施例可知,在数据进入第二处理阶段前,对该数据进行了分割,使得分割后的数据块的块数远大于分割前的数据块的块数,分割后的单个数据块的容量远小于分割前的单个数据块的容量。如此,一方面,由于数据块分割成较小的数据块,处理时间大都在可控范围之内,从而能够提高调度的公平性;另一方面,即使初次分割后的数据块BN不能满足第二处理阶段对第二处理阶段的任务均衡的要求,也可以保证初次分割后的数据块BN在后续进入增加的中间处理阶段(在第一处理阶段和第二处理阶段之间)再次分割时,各个数据块的容量是相同且在指定的范围内,同样能够使得数据在经过中间处理阶段和第二处理阶段之后,提高调度的公平性;第三方面,当数据被分割成容量较小的数据块时,处理单个数据块的时间相对较小,如此也可以保证足够多的并发作业,增强了分布式计算系统的并发性。
附图说明
图1是本发明实施例提供的分布式计算系统的调度方法的基本流程示意图;
图2是现有的MapReduce框架的Map阶段和Reduce阶段处理数据示意图;
图3是本发明实施例提供的分布式计算系统的调度装置逻辑结构示意图;
图4是本发明另一实施例提供的分布式计算系统的调度装置逻辑结构示意图;
图5-a是本发明另一实施例提供的分布式计算系统的调度装置逻辑结构示意图;
图5-b是本发明另一实施例提供的分布式计算系统的调度装置逻辑结构示意图。
具体实施方式
本发明实施例提供一种分布式计算系统的调度方法,所述方法包括:在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;为所述第二处理阶段的各个任务分配资源以进行调度。本发明实施例还提供相应的分布式计算系统的调度装置。以下分别进行详细说明。
本发明实施例的分布式计算系统的调度方法可应用于分布式计算系统,例如,Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),其执行主体可以是HDFS中的调度器或者其中的功能模块。本发明实施例提供的分布式计算系统的调度方法的基本流程可参考图1,主要包括步骤S101至步骤S103,详细说明如下:
S101,在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,其中,N远大于所述数据在进入第一处理阶段前的块数n,单个数据块BN的容量远小于所述数据在进入第一处理阶段前单个数据块Bn的容量。
在分布式计算系统中,数据的处理可由第一处理阶段和第二处理阶段完成,例如,在HDFS中,第一处理阶段可以是映射即Map阶段,第二处理阶段可以是规约即Reduce阶段,两者构成MapReduce框架。
在现有的MapReduce框架中,所谓Map阶段,是指定一个Map(映射)函数,用来将一组键值对(key-value-pair)映射成一组新的键值对,所谓Reduce阶段,主要是指定并发的Reduce(规约)函数,用来保证所有映射的键值对中的每一个共享相同的键组,即,Map阶段的map函数接受一个键值对(key-value pair),产生一组中间键值对;MapReduce框架将map函数产生的中间键值对里键相同的值传递给Reduce阶段的一个reduce函数;reduce函数接受一个键以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。
现有的MapReduce框架的Map阶段和Reduce阶段处理数据示意图如附图2所示,从图中可以看出,在Map阶段之前,数据块大小都是均衡的即每个数据块的容量基本相等,其大小也是可确定或可控制的,这是因为,Map阶段的输入源自于分布式文件系统DFS,是相对静态的数据,所以各MapTask是均衡的。而在Reduce阶段之前也即Map阶段之后,Reduce阶段处理的是map后的数据,是动态产生的数据,数据块大小就不是均衡的,而且其大小也不再是可确定的或可控制了,这种数据块的不均衡给Reduce阶段处理数据会带来严重的后果。后果之一是Reduce阶段的数据倾斜,例如,有些Reduce阶段的任务(Task)即ReduceTask需要处理100GB数据,而有一些ReduceTask只需要处理10GB数据,甚至还有些ReduceTask可能空转,没有任何数据需要处理,最严重时,可能发生某个ReduceTask被分配了超出本地可用存储空间的数据量,或是超大数据量,需要特长处理时间。后果之二是Reduce阶段数据倾斜直接导致ReduceTask不均衡即各个ReduceTask的运行时长差别大。第三个后果是并行作业(Job)困难,这是因为,若要并行作业,则必然存在作业间的调度切换,然而,由于ReduceTask需要处理的数据量可能很大,需要运行很长的时间,如果强制停止ReduceTask,对于大的ReduceTask会浪费大量的已运行时间,甚至可能导致一个大的作业运行失败,从而无法实现类似于进程的并行调度器。
为了解决上述问题,在本发明实施例中,可以在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN。具体地,对于HDFS,可以在Map阶段,将MapTask需要处理的数据分割成块数为N的数据块BN,其中,N远大于数据在进入第一处理阶段即Map阶段前的块数n,单个数据块BN的容量远小于数据在进入第一处理阶段即Map阶段前单个数据块Bn的容量。分割后的数据块的块数远多于分割前的数据块的块数,分割后单个数据块的容量远小于数据分割前单个数据块的容量,这种方案的好处在于,即使初次分割后的数据块BN不能满足第二处理阶段对第二处理阶段的任务均衡的要求,也可以保证初次分割后的数据块BN在后续进入增加的中间处理阶段(在第一处理阶段和第二处理阶段之间)再次分割时,容量相对较小的数据块组合成指定大小的数据块要简单高效一些,并且,各个数据块的容量是相同且在指定的范围内,同样能够使得数据在经过中间处理阶段和第二处理阶段之后,提高调度的公平性。
S102,若分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对数据处理。
若分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,例如,分割后的数据块BN容量已经很小(例如,在指定的范围内),并且,分割后的各个数据块BN容量大小相等,那么,这种数据块一般能够满足第二处理阶段对第二处理阶段的任务均衡的要求。
如前所述,在Reduce阶段,reduce(规约)函数接受一个键以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。在本发明实施例中,将相同键的数据由第二处理阶段的同一函数对数据处理,可以是将相同键(key)的数据由Reduce阶段的同一reduce函数对数据处理。
需要说明的是,若分割后的数据块BN不能满足第二处理阶段对第二处理阶段的任务均衡的要求,例如,分割后的数据块BN容量较大,并且大小不等,这必然使得第一处理阶段,例如Map阶段之后输出的数据不均衡,从而无法实现调度的公平;Map阶段之后输出的数据不均衡体现在键(key)过于聚集,即不同key的个数虽多,但经过映射(例如,HASH)后,过于聚集在一起,或者key单一,即不同key的个数少。在上述情况下,将相同键的数据由同一第二处理阶段对数据处理之前,可以在所述第一处理阶段与所述第二处理阶段之间增加中间处理阶段,对数据块BN再次进行分割得到数据块B’N。具体地,可以在Map阶段和Reduce阶段之间增加增加一个均衡(balance)阶段,对数据块BN再次进行分割得到数据块B’N。分割后,再将数据块B’N输入第二处理阶段,例如Reduce阶段,将相同键的数据由所述第二处理阶段的同一函数对数据处理。在本发明实施例中,balance阶段相当于是对Map阶段输出的数据进行了再映射,这个过程的开销很小,因为无需对数据进行计算。
在本发明实施例中,经第一处理阶段分割后得到的每个数据块BN的容量在预设的范围之内,并且大小相等。若第一处理阶段分割后得到的每个数据块BN的容量和大小不满足上述要求,经过中间处理阶段,例如,Balance阶段处理后的每个数据块B’N的容量在预设的范围之内,并且大小相等。
S103,为第二处理阶段的各个任务分配资源以进行调度。
在本发明实施例中,经第一处理阶段分割后得到的每个数据块BN的容量有可能是在预设的范围之内,并且大小相等。这种情况下,可以直接为第二处理阶段的各个任务分配资源以进行调度。若经第一处理阶段分割后得到的每个数据块BN的容量不是在预设的范围之内,并且大小不等,则经过中间处理阶段,例如Balance阶段后,所得每个数据块B’N的容量会是在预设的范围之内,并且大小相等。这种情况下,为第二处理阶段的各个任务分配资源以进行调度。具体地,包括如下步骤S1031和步骤S1032:
S1031,为第二处理阶段的各个任务分配运行时间片。
需要说明的是,由于第二处理阶段输出的每个数据块BN或数据块B’N的容量在预设的范围之内,并且大小相等,因此,为第二处理阶段的各个任务分配的运行时间片大小相等,例如,都控制在5分钟之内。这个时间片可以根据数据块BN或数据块B’N的容量以及经验值来确定,本发明对时间片大小可以不做限定。
S1032,当第二处理阶段的一个任务完成后,根据调度规则确定所述第二处理阶段的下一个任务。
在分布式计算系统,例如HDFS中,作业即Job是由一到多个Task组成的Tasks池,同一个Job内的各Task间是平等独立的,既不存在依赖也不存在优先级高低。Job树(Tree)是在MapReduce之上的一层调度体,例如,存在于Hadoop Hive,MapReduce框架的作用就是通过将Job分解成Task,然后调配Task到集群中各节点去执行。在本发明实施例中,由于第二处理阶段输出的每个数据块BN或数据块B’N的容量在预设的范围之内,并且大小相等,因此,在调度时,可以仿照进程调度的方法进行调度。当第二处理阶段的一个任务(Task)完成后,根据调度规则确定所述第二处理阶段的下一个任务。需要说明的是,下一个任务完成后,根据调度规则所确定的第二处理阶段的下一个任务与上一个任务未必属于同一个Job。
从上述本发明实施例提供的分布式计算系统的调度方法可知,在数据进入第二处理阶段前,对该数据进行了分割,使得分割后的数据块的块数远大于分割前的数据块的块数,分割后的单个数据块的容量远小于分割前的单个数据块的容量。如此,一方面,由于数据块分割成较小的数据块,处理时间大都在可控范围之内,从而能够提高调度的公平性;另一方面,即使初次分割后的数据块BN不能满足第二处理阶段对第二处理阶段的任务均衡的要求,也可以保证初次分割后的数据块BN在后续进入增加的中间处理阶段(在第一处理阶段和第二处理阶段之间)再次分割时,各个数据块的大小是相同且在指定的范围内,同样能够使得数据在经过中间处理阶段和第二处理阶段之后,提高调度的公平性;第三方面,当数据被分割成容量较小的数据块时,处理单个数据块的时间相对较小,如此也可以保证足够多的并发作业,增强了分布式计算系统的并发性。
下面对用于执行上述分布式计算系统的调度方法的本发明实施例的分布式计算系统的调度装置进行说明,其基本逻辑结构参考附图3。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图3示例的分布式计算系统的调度装置主要包括第一数据分割模块301、第二处理模块302和资源分配模块303,各模块详细说明如下:
第一数据分割模块301,用于在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量。
第二处理模块302,用于若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理。
资源分配模块303,用于为所述第二处理阶段的各个任务分配资源以进行调度。
在附图3示例的分布式计算系统的调度装置中,第一处理阶段为Hadoop分布式文件系统HDFS的映射Map阶段,第二处理阶段为Hadoop分布式文件系统HDFS的规约Reduce阶段。
需要说明的是,以上附图3示例的分布式计算系统的调度装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述分布式计算系统的调度装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的第一数据分割模块,可以是具有执行前述在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN的硬件,例如第一数据分割器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的第二处理模块,可以是若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理功能的硬件,例如第二处理器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
在附图3示例的分布式计算系统的调度装置中,若第一数据分割模块301分割后的数据块BN不满足第二处理阶段对第二处理阶段的任务均衡的要求,附图3示例的分布式计算系统的调度装置还包括第二数据分割模块402,如附图4所示本发明另一实施例提供的分布式计算系统的调度装置。第二数据分割模块402用于在第一处理阶段与第二处理阶段之间增加中间处理阶段,对数据块BN再次进行分割得到数据块B’N。
在附图3或附图4示例的分布式计算系统的调度装置中,第一数据分割模块301分割所得每个数据块BN的容量在预设的范围之内,并且大小相等,第二数据分割模块402分割所得每个数据块B’N的容量在预设的范围之内,并且大小相等。
附图3或附图4示例的资源分配模块303可以包括时间片分配单元501和任务确定单元502,如附图5-a或附图5-b所示本发明另一实施例提供的分布式计算系统的调度装置,其中:
时间片分配单元501,用于为所述第二处理阶段的各个任务分配运行时间片;
任务确定单元502,用于当所述第二处理阶段的一个任务完成后,根据调度规则确定所述第二处理阶段的下一个任务。
在附图5-a或附图5-b示例的分布式计算系统的调度装置中,时间片分配单元501为第二处理阶段的各个任务分配的运行时间片大小相等。
本发明实施例还给出一种公平调度器,该公平调度器可以用于实施上述实施例中提供的分布式计算系统的调度方法。具体来讲:公平调度器可以包括有一个或一个以上计算机可读存储介质的存储器、一个或者一个以上处理核心的处理器等部件。本领域技术人员可以理解,上述存储器结构并不构成对公平调度器的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据公平调度器的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
尽管未示出,公平调度器还还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
为所述第二处理阶段的各个任务分配资源以进行调度。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,若所述分割后的数据块BN不满足第二处理阶段对第二处理阶段的任务均衡的要求,则所述公平调度器的存储器中,还包含用于执行以下操作的指令:
在所述第一处理阶段与所述第二处理阶段之间增加中间处理阶段,对所述数据块BN再次进行分割得到数据块B’N。
假设上述为第一种或第二种可能的实施方式,则在第一种或第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述每个数据块BN的容量在预设的范围之内,并且大小相等,所述每个数据块B’N的容量在预设的范围之内,并且大小相等。
假设上述为第一种或第二种可能的实施方式,则在第一种或第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,则所述公平调度器的存储器中,还包含用于执行以下操作的指令:
为所述第二处理阶段的各个任务分配运行时间片;
当所述第二处理阶段的一个任务完成后,根据调度规则确定所述第二处理阶段的下一个任务。
假设上述为第三种可能的实施方式,则在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述为所述第二处理阶段的各个任务分配的运行时间片大小相等。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述第一处理阶段为Hadoop分布式文件系统HDFS的映射Map阶段,所述第二处理阶段为Hadoop分布式文件系统HDFS的规约Reduce阶段。
作为另一方面,本发明再一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入公平调度器中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序被一个或者一个以上的处理器用来执行一个分布式计算系统的调度方法,所述方法包括:
在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
为所述第二处理阶段的各个任务分配资源以进行调度。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,若所述分割后的数据块BN不满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由同一所述第二处理阶段对所述数据处理之前还包括:
在所述第一处理阶段与所述第二处理阶段之间增加中间处理阶段,对所述数据块BN再次进行分割得到数据块B’N。
假设上述为第一种或第二种可能的实施方式,则在第一种或第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述每个数据块BN的容量在预设的范围之内,并且大小相等,所述每个数据块B’N的容量在预设的范围之内,并且大小相等。
假设上述为第一种或第二种可能的实施方式,则在第一种或第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述为所述第二处理阶段的各个任务分配资源以进行调度,包括:
为所述第二处理阶段的各个任务分配运行时间片;
当所述第二处理阶段的一个任务完成后,根据调度规则确定所述第二处理阶段的下一个任务。
假设上述为第三种可能的实施方式,则在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述为所述第二处理阶段的各个任务分配的运行时间片大小相等。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述第一处理阶段为Hadoop分布式文件系统HDFS的映射Map阶段,所述第二处理阶段为Hadoop分布式文件系统HDFS的规约Reduce阶段。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的分布式计算系统的调度方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种分布式计算系统的调度方法,其特征在于,所述方法包括:
在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,单个所述数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
为所述第二处理阶段的各个任务分配资源以进行调度;
其中,所述第一处理阶段为Hadoop分布式文件系统HDFS的映射Map阶段,所述第二处理阶段为Hadoop分布式文件系统HDFS的规约Reduce阶段。
2.根据权利要求1所述的方法,其特征在于,若所述分割后的数据块BN不满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由同一所述第二处理阶段对所述数据处理之前还包括:
在所述第一处理阶段与所述第二处理阶段之间增加中间处理阶段,对所述数据块BN再次进行分割得到数据块B’N。
3.根据权利要求2所述的方法,其特征在于,每个所述数据块BN的容量在预设的范围之内,并且大小相等,每个所述数据块B’N的容量在预设的范围之内,并且大小相等。
4.根据权利要求1或2所述的方法,其特征在于,所述为所述第二处理阶段的各个任务分配资源以进行调度,包括:
为所述第二处理阶段的各个任务分配运行时间片;
当所述第二处理阶段的一个任务完成后,根据调度规则确定所述第二处理阶段的下一个任务。
5.根据权利要求4所述的方法,其特征在于,所述为所述第二处理阶段的各个任务分配的运行时间片大小相等。
6.一种分布式计算系统的调度装置,其特征在于,所述装置包括:
第一数据分割模块,用于在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块BN,所述N远大于所述数据在进入所述第一处理阶段前的块数n,单个所述数据块BN的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
第二处理模块,用于若所述分割后的数据块BN满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
资源分配模块,用于为所述第二处理阶段的各个任务分配资源以进行调度;
其中,所述第一处理阶段为Hadoop分布式文件系统HDFS的映射Map阶段,所述第二处理阶段为Hadoop分布式文件系统HDFS的规约Reduce阶段。
7.根据权利要求6所述的装置,其特征在于,若所述第一数据分割模块分割后的数据块BN不满足第二处理阶段对第二处理阶段的任务均衡的要求,则所述装置还包括:
第二数据分割模块,用于在所述第一处理阶段与所述第二处理阶段之间增加中间处理阶段,对所述数据块BN再次进行分割得到数据块B’N。
8.根据权利要求7所述的装置,其特征在于,每个所述数据块BN的容量在预设的范围之内,并且大小相等,每个所述数据块B’N的容量在预设的范围之内,并且大小相等。
9.根据权利要求6或7所述的装置,其特征在于,所述资源分配模块包括:
时间片分配单元,用于为所述第二处理阶段的各个任务分配运行时间片;
任务确定单元,用于当所述第二处理阶段的一个任务完成后,根据调度规则确定所述第二处理阶段的下一个任务。
10.根据权利要求9所述的装置,其特征在于,所述为所述第二处理阶段的各个任务分配的运行时间片大小相等。
11.一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1-5任一项所述的分布式计算系统的调度方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410140064.1A CN104978228B (zh) | 2014-04-09 | 2014-04-09 | 一种分布式计算系统的调度方法和装置 |
PCT/CN2015/076128 WO2015154686A1 (en) | 2014-04-09 | 2015-04-09 | Scheduling method and apparatus for distributed computing system |
US15/289,773 US20170024251A1 (en) | 2014-04-09 | 2016-10-10 | Scheduling method and apparatus for distributed computing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410140064.1A CN104978228B (zh) | 2014-04-09 | 2014-04-09 | 一种分布式计算系统的调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104978228A CN104978228A (zh) | 2015-10-14 |
CN104978228B true CN104978228B (zh) | 2019-08-30 |
Family
ID=54274760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410140064.1A Active CN104978228B (zh) | 2014-04-09 | 2014-04-09 | 一种分布式计算系统的调度方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170024251A1 (zh) |
CN (1) | CN104978228B (zh) |
WO (1) | WO2015154686A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808354B (zh) * | 2016-03-10 | 2019-02-15 | 西北大学 | 利用WLAN网络组建临时Hadoop环境的方法 |
WO2017163447A1 (ja) * | 2016-03-22 | 2017-09-28 | 三菱電機株式会社 | 情報処理システム、情報処理装置及び情報処理方法 |
US9977697B2 (en) * | 2016-04-15 | 2018-05-22 | Google Llc | Task management system for a modular electronic device |
CN106611037A (zh) * | 2016-09-12 | 2017-05-03 | 星环信息科技(上海)有限公司 | 用于分布式图计算的方法与设备 |
CN107885595B (zh) * | 2016-09-30 | 2021-12-14 | 华为技术有限公司 | 一种资源分配方法、相关设备及系统 |
CN107015853B (zh) * | 2016-10-10 | 2021-03-23 | 创新先进技术有限公司 | 多阶段任务的实现方法和装置 |
JP6838217B2 (ja) * | 2016-10-19 | 2021-03-03 | 日立Astemo株式会社 | 車両制御装置 |
CN107247623B (zh) * | 2017-05-22 | 2018-04-13 | 哈工大大数据产业有限公司 | 一种基于多核cpu的分布式集群系统及数据连接方法 |
US10802880B2 (en) * | 2017-09-19 | 2020-10-13 | Huawei Technologies Co., Ltd. | System and method for distributed resource requirement and allocation |
CN110083441B (zh) * | 2018-01-26 | 2021-06-04 | 中兴飞流信息科技有限公司 | 一种分布式计算系统及分布式计算方法 |
US10776148B1 (en) * | 2018-02-06 | 2020-09-15 | Parallels International Gmbh | System and method for utilizing computational power of a server farm |
CN109343791B (zh) * | 2018-08-16 | 2021-11-09 | 武汉元鼎创天信息科技有限公司 | 一种大数据一体机 |
CN109325034B (zh) * | 2018-10-12 | 2023-10-20 | 平安科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN109409734A (zh) * | 2018-10-23 | 2019-03-01 | 中国电子科技集团公司第五十四研究所 | 一种卫星数据产品生产调度系统 |
CN109726012B (zh) * | 2018-12-27 | 2023-05-09 | 湖南亚信软件有限公司 | 一种任务调度方法、装置及调度服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
CN103218263A (zh) * | 2013-03-12 | 2013-07-24 | 北京航空航天大学 | MapReduce参数的动态确定方法及装置 |
CN103327128A (zh) * | 2013-07-23 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 用于MapReduce的中间数据传输方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7756919B1 (en) * | 2004-06-18 | 2010-07-13 | Google Inc. | Large-scale data processing in a distributed and parallel processing enviornment |
US9323775B2 (en) * | 2010-06-19 | 2016-04-26 | Mapr Technologies, Inc. | Map-reduce ready distributed file system |
US20120182891A1 (en) * | 2011-01-19 | 2012-07-19 | Youngseok Lee | Packet analysis system and method using hadoop based parallel computation |
US20140059552A1 (en) * | 2012-08-24 | 2014-02-27 | International Business Machines Corporation | Transparent efficiency for in-memory execution of map reduce job sequences |
US9389994B2 (en) * | 2013-11-26 | 2016-07-12 | International Business Machines Corporation | Optimization of map-reduce shuffle performance through shuffler I/O pipeline actions and planning |
CN103701886A (zh) * | 2013-12-19 | 2014-04-02 | 中国信息安全测评中心 | 一种云计算环境下的服务及资源分层调度方法 |
-
2014
- 2014-04-09 CN CN201410140064.1A patent/CN104978228B/zh active Active
-
2015
- 2015-04-09 WO PCT/CN2015/076128 patent/WO2015154686A1/en active Application Filing
-
2016
- 2016-10-10 US US15/289,773 patent/US20170024251A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
CN103218263A (zh) * | 2013-03-12 | 2013-07-24 | 北京航空航天大学 | MapReduce参数的动态确定方法及装置 |
CN103327128A (zh) * | 2013-07-23 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 用于MapReduce的中间数据传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104978228A (zh) | 2015-10-14 |
US20170024251A1 (en) | 2017-01-26 |
WO2015154686A1 (en) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978228B (zh) | 一种分布式计算系统的调度方法和装置 | |
US10552161B2 (en) | Cluster graphical processing unit (GPU) resource sharing efficiency by directed acyclic graph (DAG) generation | |
US9389924B2 (en) | System and method for performing resource allocation for a host computer cluster | |
US10310908B2 (en) | Dynamic usage balance of central processing units and accelerators | |
CN108667867B (zh) | 数据存储方法及装置 | |
JP5367816B2 (ja) | オペレーションの保護モードスケジューリング | |
US11113782B2 (en) | Dynamic kernel slicing for VGPU sharing in serverless computing systems | |
CN108701059A (zh) | 多租户资源分配方法和系统 | |
JP6825103B2 (ja) | 計算リソース割り振り | |
EP4264427A1 (en) | Multi-tenant control plane management on computing platform | |
Lin et al. | Online optimization scheduling for scientific workflows with deadline constraint on hybrid clouds | |
Gandomi et al. | HybSMRP: a hybrid scheduling algorithm in Hadoop MapReduce framework | |
Kontagora et al. | Benchmarking a MapReduce environment on a full virtualisation platform | |
US10241838B2 (en) | Domain based resource isolation in multi-core systems | |
Baresi et al. | Towards vertically scalable spark applications | |
KR101654969B1 (ko) | 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치 | |
US20170075736A1 (en) | Rule engine for application servers | |
Divya et al. | Big Data Analysis and Its Scheduling Policy–Hadoop | |
Janardhanan et al. | Study of execution parallelism by resource partitioning in Hadoop YARN | |
Chen et al. | DeepBoot: Dynamic Scheduling System for Training and Inference Deep Learning Tasks in GPU Cluster | |
CN105930210A (zh) | Mpi函数调用方法和装置 | |
Zheng et al. | Business process oriented platform-as-a-service framework for process instances intensive applications | |
Ramkumar | Making the Most of Serverless Accelerators | |
US20160034593A1 (en) | Apparatus and method enablement of customer information control systems on a mainframe computer | |
Moreira et al. | Optimizing OpenStack Nova for Scientific Workloads |
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 |