[发明专利]一种分布式计算系统的任务调度方法及系统有效
申请号: | 201210593388.1 | 申请日: | 2012-12-31 |
公开(公告)号: | CN103078941A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 岳洋;钮毅 | 申请(专利权)人: | 中金数据系统有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 寇海侠 |
地址: | 100176 北京市大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 计算 系统 任务 调度 方法 | ||
技术领域
本发明涉及云计算技术领域,具体涉及一种分布式计算系统的任务调度方法及系统。
背景技术
在云计算领域,当前主流的计算模型是谷歌公司提出的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计算模型中,任务分发和最后结果汇总时的计算量集中在主节点上,主节点压力很大,易形成系统瓶颈,也容易带来系统单点失效的风险性较大的技术问题,从而提供一种能够分散主节点计算压力的分布式计算系统的任务调度方法及系统。
为解决上述技术问题,本发明采用的技术方案如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中金数据系统有限公司,未经中金数据系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210593388.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种生产汽车橡胶密封圈的模具导轨
- 下一篇:一种玻璃窗口式推拉门