CN103078941A - 一种分布式计算***的任务调度方法及*** - Google Patents

一种分布式计算***的任务调度方法及*** Download PDF

Info

Publication number
CN103078941A
CN103078941A CN2012105933881A CN201210593388A CN103078941A CN 103078941 A CN103078941 A CN 103078941A CN 2012105933881 A CN2012105933881 A CN 2012105933881A CN 201210593388 A CN201210593388 A CN 201210593388A CN 103078941 A CN103078941 A CN 103078941A
Authority
CN
China
Prior art keywords
node
subtask
value pair
working node
key
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
Application number
CN2012105933881A
Other languages
English (en)
Other versions
CN103078941B (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.)
CICC Digital Valley Technology Co.,Ltd.
Original Assignee
CENTRIN DATA SYSTEMS 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 CENTRIN DATA SYSTEMS CO LTD filed Critical CENTRIN DATA SYSTEMS CO LTD
Priority to CN201210593388.1A priority Critical patent/CN103078941B/zh
Publication of CN103078941A publication Critical patent/CN103078941A/zh
Application granted granted Critical
Publication of CN103078941B publication Critical patent/CN103078941B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种分布式计算***的任务调度方法及***,其中所述方法包括如下步骤:①将分布式计算***集群中节点设置主节点和工作节点;②主节点将输入文件分成多个数据段;③主节点为工作节点分配数据段和任务,主节点从中提取出初始键值对并处理生成中间键值对,存储至公共区域;④主节点判断所有数据段的处理是否完成,若是则执行⑤,若否则执行③;⑤将中间键值对分成多个区并排序;⑥最后完成数据段处理的工作节点对中间键值对进行处理,将最终结果存储到所属区;⑦返回。本发明所述的分布式计算***的任务调度方法及***,负责分配任务的主节点仅负责分配任务,最后汇总计算处理结果由工作节点来完成,从而减轻在化简阶段的***瓶颈问题。

Description

一种分布式计算***的任务调度方法及***
技术领域
本发明涉及云计算技术领域,具体涉及一种分布式计算***的任务调度方法及***。
背景技术
在云计算领域,当前主流的计算模型是谷歌公司提出的MapReduce模型以及对其改进形成的模型。对一般用户来说,MapReduce模型是一种编程范例,按照MapReduce编程范例写的程序可以并行运行在集群中的多个计算机节点上;对云服务提供商来说,MapReduce是一种用来构建云计算环境的架构,用MapReduce来组织多个计算机节点来组成大型集群运行MapReduce程序。MapReduce把整个作业按数据量大小划分成多个子任务,上述多个子任务在集群中的计算机节点中并行运行。
在MapReduce模型中,一个MapReduce作业(Job)被划分成多个任务(Task),并分配到集群中的节点上进行处理,划分方法由用户指定,作业分为映射(Map)阶段和化简(Reduce)阶段进行处理,两个阶段输入和输出都为Key/Value形式的数据模型,每个节点会周期性的把完成的工作、状态和更新报告发送给主节点。
在调用MapReduce后,用户程序处于等待状态。一个MapReduce的实际运行流程如下:T1.分布式计算***集群中的节点设置为主节点和工作节点,主节点首先调用自定义的映射函数(Map函数),将待处理的输入文件分成M个数据片段,每个数据片段的大小一般从16MB到64MB(用户可以控制每个数据片段的大小),然后,主节点将MapReduce作业(Job)划分成多个子任务,并将多个子任务的副本复制到工作节点上;T2.工作节点空闲时会向主节点发送该节点处于空闲状态信息,主节点根据空闲节点空闲状态负责给该空闲工作节点分配任务,主节点在分配任务之前,首先根据数据片段的数量M得到M个Map子任务和R个Reduce子任务,然后,主节点根据空闲的工作节点的请求将所有Map子任务和所有Reduce子任务分配给空闲的工作节点,直到所有Map子任务和所有Reduce子任务都被分配完;T3.被分配了Map子任务的工作节点从主节点上读取对应的一个输入数据片段,从输入的数据片段中提取出关于key和value的初始键值对,然后把所述初始键值对传递给用户自定义的映射函数(Map函数),由Map函数生成并输出中间键值对,并存储在该工作节点的本地磁盘中中;T4.将该工作节点的本地磁盘中的中间键值对分成R个区域,所谓将中间键值对分成R个区域,相当于将所述中间键值对封装成R个任务包,以便于Reduce进行处理,一个Reduce子任务用来处理一个区域中的所述中间键值对,将中间键值对在本地磁盘上的存储位置数据回传给主节点,由主节点负责把这些存储位置数据再传送给处理Reduce子任务的工作节点;T5.当处理Reduce子任务的工作节点接收到Master发来的存储位置数据后,通过远程过程调用协议(Remote Procedure Call Protocol,缩写为RPC)从处理Map的工作节点的本地磁盘上读取中间键值对,当处理Reduce子任务的工作节点读取了所有的中间键值对后,对key进行排序,使得具有相同key值的数据排列在一起;T6.处理Reduce子任务的工作节点对排序后的中间键值对进行进一步处理,处理Reduce子任务的工作节点将每个key值和与它相关的value值集合传递给用户自定义的Reduce函数得到输出结果,属于一个分区的多个键值对对应的多个输出结果形成输出文件并存储在相应的工作节点上;T7.当所有的Map子任务和Reduce子任务都完成之后,主节点唤醒用户程序,用户程序结束对MapReduce的调用并返回。其流程图如图1所示。
从上述对MapReduce计算模型和运行实例的描述可以看出,在它的计算流程中,特别是最后对结果进行汇总计算的Reduce环节,要对几十或者上百甚至上千节点的计算结果进行汇总计算,计算量很大,而这个压力集中在主节点上,而主节点同时还要承担繁重的任务分发工作,容易形成***瓶颈,也带来***的单点失效风险性较大。
发明内容
本发明所要解决的一个技术问题是现有技术的MapReduce计算模型中,任务分发和最后结果汇总时的计算量集中在主节点上,主节点压力很大,易形成***瓶颈,也容易带来***单点失效的风险性较大的技术问题,从而提供一种能够分散主节点计算压力的分布式计算***的任务调度方法及***。
为解决上述技术问题,本发明采用的技术方案如下:
一种分布式计算***的任务调度方法,所述分布式计算***的集群中的节点包括一个主节点和多个工作节点,其中所述主节点用于为所述多个工作节点进行任务调度,包括如下步骤:
S1,用户程序启动MapReduce程序,同时用户程序进入休眠状态;主节点获取输入文件,主节点发出执行处理输入文件的请求,所述分布式计算***对所述请求做出响应,并将所述输入文件分成多个数据段,主节点根据所述数据段数目生成多个Map子任务,并将所述Map子任务的副本复制到各个工作节点上,其中,每个所述Map子任务用于执行处理一个所述数据段的请求;同时,所述主节点按照用户程序逻辑设定一个或多个Reduce子任务,并将所述Reduce子任务的副本复制到所述各个工作节点上;
S2,集群中的工作节点将空闲状态周期性地发送给所述主节点,主节点根据所述工作节点的空闲状态将所述数据段分配给所述工作节点,直到所有数据段均分配完毕,所述工作节点从所述数据段中提取出关于Key和Value的初始键值对,将所述初始键值对传递给Map子任务,由所述Map子任务进行处理,生成中间键值对,输出所述中间键值对至公共区域中,其中,所述公共区域为所述分布式计算***中的一个目录,由所述用户程序在启动MapReduce程序时指定;
S3,所述工作节点完成一个Map子任务后向所述主节点发出处理完成Map子任务的报告,主节点判断所有数据段的处理是否完成,若是,则执行步聚S4;若否,则返回执行步骤S3;
S4,标记最后完成数据段处理的工作节点,将处于公共区域的多个所述中间键值对分成多个区,调取Reduce子任务,每个Reduce子任务对一个区中的中间键值按照Key进行排序,并将排序后的中间键值对周期性地写入所述分布式计算***的公共区域;
S5,最后完成数据段处理的工作节点获取所述公共区域的中间键值对,再次调取Reduce子任务对各个区的所述中间键值对进行处理,并将处理后得到的结果存储到所属区作为最终结果;
S6,主节点唤醒用户程序,用户程序结束对MapReduce的调用并返回。在所述步骤S4中,还包括步骤S401:
S401,判断所述中间键值对的数量是否大于所述分布式计算***配置的用于执行任务的各工作节点内存空间限额,若否,则对中间键值对的排序使用工作节点的内存空间进行排序;若是,则使用工作节点的除内存外的本地磁盘空间进行排序。
本发明还涉及一种分布式计算***的任务调度***,包括启动装置、分配装置、判断装置、分区装置、获取装置和唤醒装置;其中,
所述启动装置,用于用户程序启动MapReduce程序,同时用户程序进入休眠状态;主节点获取输入文件,主节点发出执行处理输入文件的请求,所述分布式计算***对所述请求做出响应,并将所述输入文件分成多个数据段,主节点根据所述数据段数目生成多个Map子任务,并将所述Map子任务的副本复制到各个工作节点上,其中,每个所述Map子任务用于执行处理一个所述数据段的请求;同时,所述主节点设定多个Reduce子任务,并将所述Reduce子任务的副本复制到所述各个工作节点上;
所述分配装置,主节点根据所述工作节点的空闲状态将所述数据段分配给所述工作节点,直到所有数据段均分配完毕,所述工作节点从所述数据段中提取出关于Key和Value的初始键值对,将所述初始键值对传递给Map子任务,由所述Map子任务进行处理,生成中间键值对,输出所述中间键值对至公共区域中,其中,所述公共区域为所述分布式计算***中的一个目录,由所述用户程序在启动MapReduce程序时指定;
所述判断装置,用于工作节点完成一个Map子任务后向所述主节点发出处理完成Map子任务的报告,主节点判断所有数据段的处理是否完成,若是,则进入分区装置,标识最后完成数据段处理的工作节点;若否,则主节点继续等待工作节点完成Map子任务,并发出处理完成Map子任务的报告;
所述分区装置,用于标记最后完成数据段处理的工作节点,将处于公共区域的多个所述中间键值对分成多个区,调取Reduce子任务,每个Reduce子任务对一个区中的中间键值按照Key进行排序,并将排序后的中间键值对周期性地写入所述分布式计算***的公共区域;
所述获取装置,用于最后完成数据段处理的工作节点获取所述公共区域的中间键值对,再次调取Reduce子任务对各个区的所述中间键值对进行处理,并将处理后得到的结果存储到所属区作为最终结果;
所述唤醒装置,用于主节点唤醒用户程序,用户程序结束对MapReduce的调用并返回。
所述分区装置还包括判断子装置;其中,
所述判断子装置,用于判断所述中间键值对的数量是否大于***配置的任务内存空间限额,若否,则对中间键值对的排序使用工作节点的内存空间进行排序;若是,则使用工作节点的除内存外的本地磁盘空间进行排序。
本发明的上述技术方案相比现有技术具有以下优点:
本发明所述的分布式计算***的任务调度方法及***,在MapReduce计算模型中,将输入文件分成多个数据段,在分布式计算***中,主节点在各个工作节点上创建多个Map子任务和多个Reduce子任务的副本,将数据段分配给各个工作节点,使所述多个工作节点对所述多个数据段进行处理,以提高文件处理的效率;在多个数据段处理完成后,将不同数据段的处理结果再进行化简,本发明中,负责分配任务的主节点仅负责分配任务,最后汇总计算处理结果的工作由其他工作节点来完成,从而减轻在化简阶段的***瓶颈问题,并且通过节点间通信,实现MapReduce流程中各子节点的自管理。
本发明所述的分布式计算***的任务调度方法与***中,分布式计算***集群中主节点所获取的输入文件可能比较大,各工作节点运算量较大,在公共区域将中间键值对排序时,仅用内存空间排序,可能无法执行运算,因为本发明方法中,在判断数据量较大时,使用外部空间排序,以保证各工作节点能够正常的执行任务。
本发明所述的的任务调度方法与***,所述分布式计算***设置有公共区域,集群中的各节点均可访问所述公共区域,以获取各节点较常用的数据,减轻由单一节点存储数据造成单一节点负载过重而影响***工作效率。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1为现有技术中的分布式计算***的任务调度方法的一个MapReduce实际运行流程图;
图2为本发明的分布式计算***的任务调度方法的实施例一的流程图;
图3为本发明的分布式计算***的任务调度***的实施例二的结构示意图。
具体实施方式
实施例一:
如图2所示,一种分布式计算***的任务调度方法,所述分布式计算***集群中的节点包括一个主节点和多个工作节点,其中所述主节点用于为所述多个工作节点进行任务调度,具体包括如下步骤:
S1,用户程序启动MapReduce程序,同时用户程序进入休眠状态;主节点获取输入文件,主节点发出执行处理输入文件的请求,所述分布式计算***对所述请求做出响应,并将所述输入文件分成多个数据段,主节点基于MapReduce模型根据所述数据段数目生成多个Map子任务,并将所述Map子任务的副本复制到各个工作节点上,其中,每个所述Map子任务用于执行处理一个所述数据段的请求;同时,所述主节点按照用户程序逻辑设定一个或多个Reduce子任务,并将所述Reduce子任务的副本复制到所述各个工作节点上。
所述用户程序在调用MapReduce程序时,将所述Reduce子任务的数目的确定条件传递给所述MapReduce程序,所述MapReduce程序在执行时根据用户程序所设定的业务逻辑来设定Reduce子任务的数目,通常情况下,所述Reduce子任务的数目小于所述Map子任务的数目。
在本实施例中,所述输入文件为类似结构化数据形式的文本文件,所述输入文件以二维表格形式输入。所述输入文件分成M个数据段,一个数据段即为二维表格的若干行,根据数据段的数目生成多个Map子任务,所述Map子任务的数量也是M个,与数据段的数目保持一致,同时,所述主节点按照用户程序逻辑设定一个或多个Reduce子任务,所述Reduce子任务数目为R个,R的数值不能太大或太小,约为1/3M-1/2M个,M为大于等于2的自然数,R为大于等于2的自然数。
在本发明的分布式计算***的任务调度方法中,所述Map子任务和所述Reduce子任务均由多组业务逻辑组成。
S2,集群中的工作节点将空闲状态周期性地发送给所述主节点,主节点根据所述工作节点的空闲状态将所述数据段分配给所述工作节点,直到所有数据段均分配完毕,所述工作节点从所述数据段中提取出关于Key和Value的初始键值对,将所述初始键值对传递给Map子任务,由所述Map子任务进行处理,生成中间键值对,输出所述中间键值对至公共区域中。
其中,所述公共区域为所述分布式计算***中的一个目录,由所述用户程序在启动MapReduce程序时指定,在完成对所述MapReduce程序的调用后,集群中各个节点可以访问所述公共区域来获取数据。
本领域技术人员应该可以理解,所述输入文件为类似结构化数据形式的文本文件,所述输入文件以二维表格形式输入。在读取所述数据段时,根据用户程序设定的业务逻辑,默认每一行的第一个字段为Key,第二个字段为Value。从而所述工作节点从所述数据段中提取出关于Key和Value的初始键值对,所述Map子任务和所述Reduce子任务的输入、输出均为关于Key和Va lue的键值对形式的数据。
S3,所述工作节点完成一个Map子任务后向所述主节点发出处理完成Map子任务的报告,主节点判断所有数据段的处理是否完成,若是,则执行步聚S4;若否,则返回执行步骤S3。
在本实施例中,所述工作节点每完成一个Map子任务,就向所述主节点发送一次处理完成Map子任务的报告,作为一种可替代方案,由于一个工作节点可能被分配多个Map子任务,也可以待该工作节点处理完成被分配的所有Map子任务后,再向主节点发送处理完成Map子任务的报告。主节点判断所有数据段的处理是否完成,以便确定最后完成数据段处理的工作节点。
S4,标记最后完成数据段处理的工作节点,将处于公共区域的多个所述中间键值对分成多个区,调取Reduce子任务,每个Reduce子任务对一个区中的中间键值按照Key进行排序,判断所述中间键值对的数量是否大于所述分布式计算***配置的用于执行任务的各工作节点内存空间限额,若否,则对中间键值对的排序使用工作节点的内存空间进行排序;若是,则使用工作节点的除内存外的本地磁盘空间进行排序,并将排序后的中间键值对周期性地写入所述分布式计算***的公共区域。
将多个所述中间键值对分成多个区,即将所述中间键值对分成多个任务包,以供所述Reduce子任务对其进行处理。所述区的数目与所述Reduce子任务的数目相一致,在本实施例中都为R个,一个Reduce子任务对应一个区。
S5,最后完成数据段处理的工作节点获取所述公共区域的中间键值对,再次调取Reduce子任务对各个区的所述中间键值对进行处理,并将处理后得到的结果存储到所属区作为最终结果。
在现有技术中,由主节点负责分配任务,并对排序后的中间键值对进行处理,使得主节点的工作量过大,容易造成***瓶颈,在本实施例中,由主节点负责分配任务,由所述最后完成数据段处理的工作节点对所述公共区域的排序后的中间键值对进行处理,减轻了所述主节点的工作量,减小了发生***瓶颈的风险。
S6,主节点唤醒用户程序,用户程序结束对MapReduce的调用并返回。
用户程序完成一次对MapReduce的调用后,根据主节点的唤醒请求,返回用户程序,继续执行用户程序。所述用户程序可以在其下面程序执行过程中,随时调用公共区域中的最终结果。
本发明所述的分布式计算***的任务调度方法,在用户程序执行过程中,调用MapReduce计算模型,首先将输入文件分成多个数据段,在分布式计算***主节点在各个工作节点上创建多个Map子任务和Reduce子任务的副本,将所述数据段分配给各个工作节点,使所述多个节点对所述多个数据段进行处理,以提高文件处理的效率;本发明中,负责分配任务的主节点仅负责分配任务,最后汇总计算处理结果的工作由最后完成数据段处理的工作节点来完成,从而减轻在化简阶段的***瓶颈问题。
实施例二:
如图3所示,基于同一发明构思,本发明还提供一种分布式计算***的任务调度***,包括启动装置Q1、分配装置Q2、判断装置Q3、分区装置Q4、获取装置Q5和唤醒装置Q6;
其中,
所述启动装置Q1,用于用户程序启动MapReduce程序,同时用户程序进入休眠状态;主节点获取输入文件,主节点发出执行处理输入文件的请求,所述分布式计算***对所述请求做出响应,并将所述输入文件分成多个数据段,主节点根据所述数据段数目生成多个Map子任务,并将所述Map子任务的副本复制到各个工作节点上,其中,每个所述Map子任务用于执行处理一个所述数据段的请求;同时,所述主节点设定多个Reduce子任务,并将所述Reduce子任务的副本复制到所述各个工作节点上;
所述分配装置Q2,主节点根据所述工作节点的空闲状态将所述数据段分配给所述工作节点,直到所有数据段均分配完毕,所述工作节点从所述数据段中提取出关于Key和Value的初始键值对,将所述初始键值对传递给Map子任务,由所述Map子任务进行处理,生成中间键值对,输出所述中间键值对至公共区域中,其中,所述公共区域为所述分布式计算***中的一个目录,由所述用户程序在启动MapReduce程序时指定;
所述判断装置Q3,用于工作节点完成一个Map子任务后向所述主节点发出处理完成Map子任务的报告,主节点判断所有数据段的处理是否完成,若是,则进入分区装置Q4,标识最后完成数据段处理的工作节点;若否,则主节点继续等待工作节点完成Map子任务,并发出处理完成Map子任务的报告;
所述分区装置Q4,用于标记最后完成数据段处理的工作节点,将处于公共区域的多个所述中间键值对分成多个区,调取Reduce子任务,每个Reduce子任务对一个区中的中间键值按照Key进行排序,并将排序后的中间键值对周期性地写入所述分布式计算***的公共区域;
所述获取装置Q5,用于最后完成数据段处理的工作节点获取所述公共区域的中间键值对,再次调取Reduce子任务对各个区的所述中间键值对进行处理,并将处理后得到的结果存储到所属区作为最终结果;
所述唤醒装置Q6,用于主节点唤醒用户程序,用户程序结束对MapReduce的调用并返回。
所述分区装置Q4还包括判断子装置Q7;
其中,
所述判断子装置Q7,用于判断所述中间键值对的数量是否为较大,若否,则对中间键值对的排序使用工作节点的内存空间进行排序;若是,则使用工作节点的除内存外的本地磁盘空间进行排序
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

Claims (4)

1.一种分布式计算***的任务调度方法,所述分布式计算***的集群中的节点包括一个主节点和多个工作节点,其中所述主节点用于为所述多个工作节点进行任务调度,其特征在于,包括如下步骤:
S1,用户程序启动MapReduce程序,同时用户程序进入休眠状态;主节点获取输入文件,主节点发出执行处理输入文件的请求,所述分布式计算***对所述请求做出响应,并将所述输入文件分成多个数据段,主节点根据所述数据段数目生成多个Map子任务,并将所述Map子任务的副本复制到各个工作节点上,其中,每个所述Map子任务用于执行处理一个所述数据段的请求;同时,所述主节点按照用户程序逻辑设定一个或多个Reduce子任务,并将所述Reduce子任务的副本复制到所述各个工作节点上;
S2,集群中的工作节点将空闲状态周期性地发送给所述主节点,主节点根据所述工作节点的空闲状态将所述数据段分配给所述工作节点,直到所有数据段均分配完毕,所述工作节点从所述数据段中提取出关于Key和Value的初始键值对,将所述初始键值对传递给Map子任务,由所述Map子任务进行处理,生成中间键值对,输出所述中间键值对至公共区域中,其中,所述公共区域为所述分布式计算***中的一个目录,由所述用户程序在启动MapReduce程序时指定;
S3,所述工作节点完成一个Map子任务后向所述主节点发出处理完成Map子任务的报告,主节点判断所有数据段的处理是否完成,若是,则执行步聚S4;若否,则返回执行步骤S3;
S4,标记最后完成数据段处理的工作节点,将处于公共区域的多个所述中间键值对分成多个区,调取Reduce子任务,每个Reduce子任务对一个区中的中间键值按照Key进行排序,并将排序后的中间键值对周期性地写入所述分布式计算***的公共区域;
S5,最后完成数据段处理的工作节点获取所述公共区域的中间键值对,再次调取Reduce子任务对各个区的所述中间键值对进行处理,并将处理后得到的结果存储到所属区作为最终结果;
S6,主节点唤醒用户程序,用户程序结束对MapReduce的调用并返回。
2.根据权利要求1所述的分布式计算***的任务调度方法,其特征在于,在所述步骤S4中,还包括步骤S401:
S401,判断所述中间键值对的数量是否大于所述分布式计算***配置的用于执行任务的各工作节点的内存空间限额,若否,则对中间键值对的排序使用工作节点的内存空间进行排序;若是,则使用工作节点的除内存外的本地磁盘空间进行排序。
3.一种分布式计算***的任务调度***,其特征在于,包括启动装置、分配装置、判断装置、分区装置、获取装置和唤醒装置;其中,
所述启动装置,用于用户程序启动MapReduce程序,同时用户程序进入休眠状态;主节点获取输入文件,主节点发出执行处理输入文件的请求,所述分布式计算***对所述请求做出响应,并将所述输入文件分成多个数据段,主节点根据所述数据段数目生成多个Map子任务,并将所述Map子任务的副本复制到各个工作节点上,其中,每个所述Map子任务用于执行处理一个所述数据段的请求;同时,所述主节点设定多个Reduce子任务,并将所述Reduce子任务的副本复制到所述各个工作节点上;
所述分配装置,主节点根据所述工作节点的空闲状态将所述数据段分配给所述工作节点,直到所有数据段均分配完毕,所述工作节点从所述数据段中提取出关于Key和Value的初始键值对,将所述初始键值对传递给Map子任务,由所述Map子任务进行处理,生成中间键值对,输出所述中间键值对至公共区域中,其中,所述公共区域为所述分布式计算***中的一个目录,由所述用户程序在启动MapReduce程序时指定;
所述判断装置,用于工作节点完成一个Map子任务后向所述主节点发出处理完成Map子任务的报告,主节点判断所有数据段的处理是否完成,若是,则进入分区装置,标识最后完成数据段处理的工作节点;若否,则主节点继续等待工作节点完成Map子任务,并发出处理完成Map子任务的报告;
所述分区装置,用于标记最后完成数据段处理的工作节点,将处于公共区域的多个所述中间键值对分成多个区,调取Reduce子任务,每个Reduce子任务对一个区中的中间键值按照Key进行排序,并将排序后的中间键值对周期性地写入所述分布式计算***的公共区域;
所述获取装置,用于最后完成数据段处理的工作节点获取所述公共区域的中间键值对,再次调取Reduce子任务对各个区的所述中间键值对进行处理,并将处理后得到的结果存储到所属区作为最终结果;
所述唤醒装置,用于主节点唤醒用户程序,用户程序结束对MapReduce的调用并返回。
4.根据权利要求3所述的分布式计算***的任务调度***,其特征在于,所述分区装置还包括判断子装置;其中,
所述判断子装置,用于判断所述中间键值对的数量是否大于***配置的任务内存空间限额,若否,则对中间键值对的排序使用工作节点的内存空间进行排序;若是,则使用工作节点的除内存外的本地磁盘空间进行排序。
CN201210593388.1A 2012-12-31 2012-12-31 一种分布式计算***的任务调度方法 Active CN103078941B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210593388.1A CN103078941B (zh) 2012-12-31 2012-12-31 一种分布式计算***的任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210593388.1A CN103078941B (zh) 2012-12-31 2012-12-31 一种分布式计算***的任务调度方法

Publications (2)

Publication Number Publication Date
CN103078941A true CN103078941A (zh) 2013-05-01
CN103078941B CN103078941B (zh) 2016-01-20

Family

ID=48155343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210593388.1A Active CN103078941B (zh) 2012-12-31 2012-12-31 一种分布式计算***的任务调度方法

Country Status (1)

Country Link
CN (1) CN103078941B (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701906A (zh) * 2013-12-27 2014-04-02 北京奇虎科技有限公司 分布式实时计算***及其数据处理方法
CN104486447A (zh) * 2014-12-30 2015-04-01 成都因纳伟盛科技股份有限公司 基于Big-Cluster的大平台集群***
CN104580396A (zh) * 2014-12-19 2015-04-29 华为技术有限公司 一种任务调度方法、节点及***
CN104794095A (zh) * 2014-01-16 2015-07-22 华为技术有限公司 分布式计算处理方法及装置
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、***和计算节点
CN106250233A (zh) * 2016-07-21 2016-12-21 鄞州浙江清华长三角研究院创新中心 MapReduce性能优化***及优化方法
CN103995827B (zh) * 2014-04-10 2017-08-04 北京大学 MapReduce计算框架中的高性能排序方法
CN107479963A (zh) * 2016-06-08 2017-12-15 国家计算机网络与信息安全管理中心 一种任务分配方法及***
CN107766157A (zh) * 2017-11-02 2018-03-06 山东浪潮云服务信息科技有限公司 基于国产cpu和os的分布式容器集群框架实现方法
CN109032610A (zh) * 2017-06-08 2018-12-18 杭州海康威视数字技术股份有限公司 一种程序包部署方法、电子设备及分布式***
CN109101188A (zh) * 2017-11-21 2018-12-28 新华三大数据技术有限公司 一种数据处理方法和装置
CN109298948A (zh) * 2018-10-31 2019-02-01 北京国信宏数科技有限责任公司 分布式计算方法和***
CN110018896A (zh) * 2018-01-08 2019-07-16 武汉斗鱼网络科技有限公司 一种任务处理方法、装置、执行端集群及介质
CN110222105A (zh) * 2019-05-14 2019-09-10 联动优势科技有限公司 数据汇总处理方法及装置
CN110543354A (zh) * 2019-09-05 2019-12-06 腾讯科技(深圳)有限公司 任务调度方法、装置、设备及存储介质
WO2020034194A1 (zh) * 2018-08-17 2020-02-20 西门子股份公司 分布式数据处理方法、装置及***和机器可读介质
CN111490795A (zh) * 2020-05-25 2020-08-04 南京大学 一种面向中间值长度异构的编码MapReduce方法
CN111580979A (zh) * 2020-05-14 2020-08-25 哈尔滨工业大学(深圳) 一种基于大气辐射传输模型的数据处理方法、装置和***
CN111858721A (zh) * 2020-08-03 2020-10-30 南京大学 一种基于优先级编码的分布式计算方法
CN112101891A (zh) * 2020-07-30 2020-12-18 杭州正策信息科技有限公司 一种应用于项目申报***中的数据处理方法
CN112148445A (zh) * 2020-09-09 2020-12-29 倍智智能数据运营有限公司 一种基于大数据技术的分布式任务调度方法
CN113537798A (zh) * 2014-12-16 2021-10-22 微软技术许可有限责任公司 作业调度和监测
CN114581221A (zh) * 2022-05-05 2022-06-03 支付宝(杭州)信息技术有限公司 分布式计算***以及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770402A (zh) * 2008-12-29 2010-07-07 ***通信集团公司 MapReduce***中的Map任务调度方法、设备及***
WO2011134875A1 (en) * 2010-04-30 2011-11-03 International Business Machines Corporation Data center operation
US20120159627A1 (en) * 2009-12-31 2012-06-21 International Business Machines Corporation Suspicious node detection and recovery in mapreduce computing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770402A (zh) * 2008-12-29 2010-07-07 ***通信集团公司 MapReduce***中的Map任务调度方法、设备及***
US20120159627A1 (en) * 2009-12-31 2012-06-21 International Business Machines Corporation Suspicious node detection and recovery in mapreduce computing
WO2011134875A1 (en) * 2010-04-30 2011-11-03 International Business Machines Corporation Data center operation

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
COLBY RANGER, RAMANAN RAGHURAMAN, ARUN PENMETSA, GARY BRADSKI, C: "Evaluating MapReduce for Multi-core and Multiprocessor Systems", 《PROCEEDINGS OF THE 13TH INTL, SYMPOSIUM ON HIGH PERFORMANCE COMPUTER ARCHITECTURE (HPCA)》, 28 February 2007 (2007-02-28) *
JUSTIN TALBOT, RICHARD M. YOO, CHRISTOS KOZYRAKIS: "Phoenix++: Modular MapReduce for Shared-Memory Systems", 《IN MAPREDUCE》, 31 December 2011 (2011-12-31) *
朱湘; 金松昌; 贾焰;: "一种基于Hadoop平台的海量Web数据挖掘***研究与实现", 《第九届中国通信学会学术年会论文集 》, 17 August 2012 (2012-08-17) *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701906A (zh) * 2013-12-27 2014-04-02 北京奇虎科技有限公司 分布式实时计算***及其数据处理方法
CN104794095A (zh) * 2014-01-16 2015-07-22 华为技术有限公司 分布式计算处理方法及装置
CN103995827B (zh) * 2014-04-10 2017-08-04 北京大学 MapReduce计算框架中的高性能排序方法
CN113537798A (zh) * 2014-12-16 2021-10-22 微软技术许可有限责任公司 作业调度和监测
CN104580396A (zh) * 2014-12-19 2015-04-29 华为技术有限公司 一种任务调度方法、节点及***
CN104486447A (zh) * 2014-12-30 2015-04-01 成都因纳伟盛科技股份有限公司 基于Big-Cluster的大平台集群***
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、***和计算节点
CN106156810B (zh) * 2015-04-26 2019-12-03 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、***和计算节点
CN107479963A (zh) * 2016-06-08 2017-12-15 国家计算机网络与信息安全管理中心 一种任务分配方法及***
CN106250233A (zh) * 2016-07-21 2016-12-21 鄞州浙江清华长三角研究院创新中心 MapReduce性能优化***及优化方法
CN106250233B (zh) * 2016-07-21 2020-03-27 浙江清华长三角研究院 MapReduce性能优化***及优化方法
CN109032610A (zh) * 2017-06-08 2018-12-18 杭州海康威视数字技术股份有限公司 一种程序包部署方法、电子设备及分布式***
CN109032610B (zh) * 2017-06-08 2024-04-09 杭州海康威视数字技术股份有限公司 一种程序包部署方法、电子设备及分布式***
CN107766157A (zh) * 2017-11-02 2018-03-06 山东浪潮云服务信息科技有限公司 基于国产cpu和os的分布式容器集群框架实现方法
CN109101188B (zh) * 2017-11-21 2022-03-01 新华三大数据技术有限公司 一种数据处理方法和装置
CN109101188A (zh) * 2017-11-21 2018-12-28 新华三大数据技术有限公司 一种数据处理方法和装置
CN110018896A (zh) * 2018-01-08 2019-07-16 武汉斗鱼网络科技有限公司 一种任务处理方法、装置、执行端集群及介质
WO2020034194A1 (zh) * 2018-08-17 2020-02-20 西门子股份公司 分布式数据处理方法、装置及***和机器可读介质
CN109298948A (zh) * 2018-10-31 2019-02-01 北京国信宏数科技有限责任公司 分布式计算方法和***
CN109298948B (zh) * 2018-10-31 2021-04-02 北京国信宏数科技有限责任公司 分布式计算方法和***
CN110222105A (zh) * 2019-05-14 2019-09-10 联动优势科技有限公司 数据汇总处理方法及装置
CN110222105B (zh) * 2019-05-14 2021-06-29 联动优势科技有限公司 数据汇总处理方法及装置
CN110543354A (zh) * 2019-09-05 2019-12-06 腾讯科技(深圳)有限公司 任务调度方法、装置、设备及存储介质
CN110543354B (zh) * 2019-09-05 2023-06-13 腾讯科技(上海)有限公司 任务调度方法、装置、设备及存储介质
CN111580979A (zh) * 2020-05-14 2020-08-25 哈尔滨工业大学(深圳) 一种基于大气辐射传输模型的数据处理方法、装置和***
CN111490795A (zh) * 2020-05-25 2020-08-04 南京大学 一种面向中间值长度异构的编码MapReduce方法
CN112101891A (zh) * 2020-07-30 2020-12-18 杭州正策信息科技有限公司 一种应用于项目申报***中的数据处理方法
CN112101891B (zh) * 2020-07-30 2021-05-04 杭州正策信息科技有限公司 一种应用于项目申报***中的数据处理方法
CN111858721B (zh) * 2020-08-03 2023-07-21 南京大学 一种基于优先级编码的分布式计算方法
CN111858721A (zh) * 2020-08-03 2020-10-30 南京大学 一种基于优先级编码的分布式计算方法
CN112148445A (zh) * 2020-09-09 2020-12-29 倍智智能数据运营有限公司 一种基于大数据技术的分布式任务调度方法
CN114581221A (zh) * 2022-05-05 2022-06-03 支付宝(杭州)信息技术有限公司 分布式计算***以及计算机设备
CN114581221B (zh) * 2022-05-05 2022-07-29 支付宝(杭州)信息技术有限公司 分布式计算***以及计算机设备

Also Published As

Publication number Publication date
CN103078941B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN103078941A (zh) 一种分布式计算***的任务调度方法及***
Wang et al. {RStream}: Marrying relational algebra with streaming for efficient graph mining on a single machine
Hu et al. Time-and cost-efficient task scheduling across geo-distributed data centers
Cordova et al. DBSCAN on resilient distributed datasets
CN101957863A (zh) 数据并行处理方法、装置及***
CN106843745A (zh) 容量扩展方法及装置
EP3180695A1 (en) Systems and methods for auto-scaling a big data system
CN101571810B (zh) 执行程序的方法、验证程序结果的方法、装置及***
CN109254836B (zh) 面向云计算***优先依赖任务的期限约束成本优化调度方法
Huynh et al. An efficient approach for mining sequential patterns using multiple threads on very large databases
CN102521014A (zh) 虚拟机的部署方法及装置
CN104952032A (zh) 图的处理方法、装置以及栅格化表示及存储方法
Puri et al. MapReduce algorithms for GIS polygonal overlay processing
US20230351145A1 (en) Pipelining and parallelizing graph execution method for neural network model computation and apparatus thereof
CN102708009A (zh) 一种基于cuda实现多任务共享gpu的方法
Agarwal et al. Lessons learnt from the development of gis application on azure cloud platform
Zhang et al. Design and implementation of task scheduling strategies for massive remote sensing data processing across multiple data centers
CN100531070C (zh) 网络资源调度仿真***
CN102831102A (zh) 一种在计算机集群上进行矩阵乘积运算的方法和***
Brighen et al. Listing all maximal cliques in large graphs on vertex-centric model
CN109788013B (zh) 分布式***中作业资源分配方法、装置及设备
CN104239520B (zh) 一种基于历史信息的hdfs数据块放置策略
CN107528871A (zh) 存储***中的数据分析
Ruan et al. Hymr: a hybrid mapreduce workflow system
Wang et al. Towards Hybrid Programming in Big Data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220908

Address after: 430000, No. 666, Wuhuan Avenue, linkonggang economic and Technological Development Zone, Wuhan City, Hubei Province

Patentee after: CICC Digital Valley Technology Co.,Ltd.

Address before: No. 1 Boxing Eighth Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176

Patentee before: CENTRIN DATA SYSTEMS Co.,Ltd.

TR01 Transfer of patent right