一种分布式计算系统的调度方法和装置的制造方法

文档序号:9261263阅读:480来源:国知局
一种分布式计算系统的调度方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机网络领域,具体涉及一种分布式计算系统的调度方法和装置。
【背景技术】
[0002]分布式计算系统以Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)最为典型。HDFS是分布式计算的存储基石,Hadoop的分布式文件系统和其他分布式文件系统有很多类似的特质。分布式文件系统基本特点包括:对于整个集群有单一的命名空间;数据一致性,即适合一次写入多次读取的模型,客户端在文件没有被成功创建之前无法看到文件存在;文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,而且根据配置会由复制文件块来保证数据的安全性。
[0003]为了解决要处理生产型作业(数据分析、Hive)、大型批处理作业(数据挖掘、机器学习)和小型交互作业(Hive查询)等问题,同时为了满足不同用户提交的作业在计算时间、存储空间、数据流量和响应时间都有不同需求的情况下,使用Hadoop MapReduce框架能够应对多种类型作业并行执行,使得用户具有良好的体验,业界提出了公平调度器(FairScheduler)算法。所谓公平调度器,主要由作业池管理器、负载均衡器、任务选择器、权重调整器和作业调度更新线程等5大组件构成,其中,作业池管理器(PoolManager)主要负责以池的单位来管理用户提交的作业,这是因为每一个作业池中每次参与调度的作业的数量是由限制的,所以每一个作业必须对应一个唯一的作业池;负载均衡器(LoadManager )会根据当前集群的负载以及当前任务跟踪(TaskTracker )节点的负载情况来决定是否应该给该TaskTracker节点分配Map/Reduce任务;任务选择器(TaskSelector)负责从一个作业中选取一个Map/Reduce任务给TaskTracker节点;作业调度更新线程(UpdateThread)会每隔500ms更新一次可调度的作业集,在更新的过程中,它会调用权重调整器(WeightAdjuster)来更新每一个作业的权重。
[0004]然而,公平调度器的公平调度算法只是相对的。例如,现有的一种分布式计算系统的公平调度方法,例如,HDFS中的公平调度器提供的公平调度方法,其调度的粒度依赖于每个任务(Task)所处理的数据块的大小,S卩,对于小数据块,调度时分配的时间资源较短,对于大数据块,调度时分配的时间资源较长。
[0005]也就是说,上述现有的分布式计算系统的公平调度方法在数据块大小不均衡时,调度就不会是公平的了。例如,假设为处理一个数据块的任务(Task)分配10分钟的时间资源是调度公平的,那么,对于1M的数据块,公平调度器在调度时,为负责处理该1M的数据块的任务(Task)分配的时间资源小于10分钟(例如,8分钟),而对于IG的数据块,公平调度器在调度时,为负责处理该IG的数据块的任务(Task)分配的时间资源大于10分钟(例如,19分钟),那么,这种调度方法的不公平就体现在为处理数据块的任务分配的时间资源大小不等。

【发明内容】

[0006]本发明实施例提供一种分布式计算系统的调度方法和装置,以提高大数据处理时调度算法的公平性。
[0007]本发明实施例提供一种分布式计算系统的调度方法,所述方法包括:
[0008]在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块Bn,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块Bn的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
[0009]若所述分割后的数据块Bn满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
[0010]为所述第二处理阶段的各个任务分配资源以进行调度。
[0011]本发明另一实施例提供一种分布式计算系统的调度装置,所述装置包括:
[0012]第一数据分割模块,用于在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块Bn,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块Bn的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;
[0013]第二处理模块,用于若所述分割后的数据块Bn满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;
[0014]资源分配模块,用于为所述第二处理阶段的各个任务分配资源以进行调度。
[0015]从上述本发明实施例可知,在数据进入第二处理阶段前,对该数据进行了分割,使得分割后的数据块的块数远大于分割前的数据块的块数,分割后的单个数据块的容量远小于分割前的单个数据块的容量。如此,一方面,由于数据块分割成较小的数据块,处理时间大都在可控范围之内,从而能够提高调度的公平性;另一方面,即使初次分割后的数据块Bn不能满足第二处理阶段对第二处理阶段的任务均衡的要求,也可以保证初次分割后的数据块Bn在后续进入增加的中间处理阶段(在第一处理阶段和第二处理阶段之间)再次分割时,各个数据块的容量是相同且在指定的范围内,同样能够使得数据在经过中间处理阶段和第二处理阶段之后,提高调度的公平性;第三方面,当数据被分割成容量较小的数据块时,处理单个数据块的时间相对较小,如此也可以保证足够多的并发作业,增强了分布式计算系统的并发性。
【附图说明】
[0016]图1是本发明实施例提供的分布式计算系统的调度方法的基本流程示意图;
[0017]图2是现有的MapReduce框架的Map阶段和Reduce阶段处理数据示意图;
[0018]图3是本发明实施例提供的分布式计算系统的调度装置逻辑结构示意图;
[0019]图4是本发明另一实施例提供的分布式计算系统的调度装置逻辑结构示意图;
[0020]图5_a是本发明另一实施例提供的分布式计算系统的调度装置逻辑结构示意图;
[0021]图5_b是本发明另一实施例提供的分布式计算系统的调度装置逻辑结构示意图。
【具体实施方式】
[0022]本发明实施例提供一种分布式计算系统的调度方法,所述方法包括:在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块Bn,所述N远大于所述数据在进入所述第一处理阶段前的块数n,所述单个数据块Bn的容量远小于所述数据在进入所述第一处理阶段前单个数据块Bn的容量;若所述分割后的数据块Bn满足第二处理阶段对第二处理阶段的任务均衡的要求,则将相同键的数据由所述第二处理阶段的同一函数对所述数据处理;为所述第二处理阶段的各个任务分配资源以进行调度。本发明实施例还提供相应的分布式计算系统的调度装置。以下分别进行详细说明。
[0023]本发明实施例的分布式计算系统的调度方法可应用于分布式计算系统,例如,Hadoop分布式文件系统(Hadoop Distributed File System, HDFS),其执行主体可以是HDFS中的调度器或者其中的功能模块。本发明实施例提供的分布式计算系统的调度方法的基本流程可参考图1,主要包括步骤SlOl至步骤S103,详细说明如下:
[0024]SlOl,在第一处理阶段,将任务需要处理的数据分割成块数为N的数据块Bn,其中,N远大于所述数据在进入第一处理阶段前的块数n,单个数据块Bn的容量远小于所述数据在进入第一处理阶段前单个数据块Bn的容量。
[0025]在分布式计算系统中,数据的处理可由第一处理阶段和第二处理阶段完成,例如,在HDFS中,第一处理阶段可以是映射即Map阶段,第二处理阶段可以是规约即Reduce阶段,两者构成MapReduce框架。
[0026]在现有的MapReduce框架中,所谓Map阶段,是指定一个Map (映射)函数,用来将一组键值对(key-value-pair)映射成一组新的键
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1