一种Hadoop集群中的作业调度方法和作业调度器技术

技术编号:10810853 阅读:101 留言:0更新日期:2014-12-24 16:20
本发明专利技术公开了一种Hadoop集群中的作业调度方法和作业调度器,根据作业的优先级、提交时间和任务运行数对Hadoop集群中的作业进行评价,并根据评价结果自适应地选择作业,缩短了优先级较高的小作业的等待时间,保证了对优先级高的小作业的公平性,同时缩短了多作业的整体运行时间,避免了局部最优的出现,提高了作业调度的适应性和调度合理性,改善了Hadoop集群处理任务的效率和整体性能。

【技术实现步骤摘要】
一种Hadoop集群中的作业调度方法和作业调度器
本专利技术涉及计算机
,具体涉及一种Hadoop集群中的作业调度方法和作业调度器。
技术介绍
Hadoop集群是一种具有高可靠性和良好的扩展性的分布式系统,在数据处理领域得到了广泛的应用。在Hadoop集群得到应用的初期阶段,使用FIFO(FirstInFirstOut,先入先出)调度机制分配任务,将所有作业统一提交到一个队列中,并按照提交的先后顺序依次运行队列中的作业。但随着Hadoop用户及应用程序种类的不断增加,FIFO调度机制无法有效地利用集群中的资源,也不能满足不同应用程序的服务质量要求。现有技术中,通常使用公平调度机制和计算能力调度机制分配任务,按照应用需求对用户或应用程序分组,对不同的分组分配不同的资源量,同时通过添加各种约束条件防止单个用户或者应用程序独占资源。然而,公平调度机制会导致负载不均衡,影响系统的响应时间,同时,配置文件的配置影响整个系统的性能。而在计算能力调度机制中,无法自动进行队列设置和队列分组,并且存在局部最优现象,从而影响系统的整体性能。
技术实现思路
本专利技术提供了一种Hadoop集群中的作业调度方法和作业调度器,用以解决现有作业调度机制中的负载不均衡和系统的整体性能受到影响的缺陷。本专利技术提供了一种Hadoop集群中的作业调度方法,包括以下步骤:S1、获取所述Hadoop集群中的各个队列占用的资源量,根据各个队列占用的资源量,计算各个队列的资源使用率;S2、根据各个队列的资源使用率,选择资源使用率最低的队列作为当前队列;S3、获取当前队列中的各个作业的优先级、提交时间、未完成任务数和总任务数,根据各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值;S4、根据当前队列中的各个作业的评价值,从当前队列中选择当前作业;S5、从当前作业中选择任务,并向选择的任务分配资源。可选地,所述根据各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值,具体为:计算当前队列中的各个作业的优先级与当前队列中的所有作业的优先级之和的比值,将该比值作为各个作业的优先级因子;计算当前时间与当前队列中的各个作业的提交时间的差值,将该差值与当前时间的比值作为各个作业的时间因子;计算当前队列中的各个作业的未完成任务数和总任务数的比值,将该比值作为各个作业的任务量因子,并根据各个作业的优先级因子、时间因子和任务量因子,计算各个作业的评价值。可选地,所述根据各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值,具体为:使用以下公式计算各个作业的评价值:其中,Worth[i]为作业i的评价值,p[i]为作业i的优先级的分值,为当前队列中的所有作业的优先级的分值之和,nowtime为当前时间,submittime为作业i的提交时间,untasks为作业i的未完成任务数,totaltasks为作业i的总任务数。可选地,所述步骤S4之后,还包括:判断当前作业所在的用户占用的资源是否达到资源使用上限;所述步骤S5,具体为:如果当前作业所在的用户占用的资源未达到资源使用上限,从当前作业中选择任务,并向选择的任务分配资源。可选地,所述步骤S4之后,还包括:所述步骤S4之后,还包括:判断TaskTracker节点的剩余资源是否足以运行当前作业中的一个任务;所述步骤S5,具体为:如果所述TaskTracker节点的剩余资源足以运行当前作业中的一个任务,从当前作业中选择任务,并向选择的任务分配资源。本专利技术还提供了一种Hadoop集群中的作业调度器,包括:第一获取模块,用于获取所述Hadoop集群中的各个队列占用的资源量;第一计算模块,用于根据所述第一获取模块获取到的各个队列占用的资源量,计算各个队列的资源使用率;第一选择模块,用于根据所述第一计算模块计算得到的各个队列的资源使用率,选择资源使用率最低的队列作为当前队列;第二获取模块,用于获取所述第一选择模块选择的当前队列中的各个作业的优先级、提交时间、未完成任务数和总任务数;第二计算模块,用于根据所述第二获取模块获取到的各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值;第二选择模块,用于根据所述第二计算模块计算得到的当前队列中的各个作业的评价值,从当前队列中选择当前作业;分配模块,用于从所述第二选择模块选择的当前作业中选择任务,并向选择的任务分配资源。可选地,所述第二计算模块,具体用于计算当前队列中的各个作业的优先级与当前队列中的所有作业的优先级之和的比值,将该比值作为各个作业的优先级因子;计算当前时间与当前队列中的各个作业的提交时间的差值,将该差值与当前时间的比值作为各个作业的时间因子;计算当前队列中的各个作业的未完成任务数和总任务数的比值,将该比值作为各个作业的任务量因子,并根据各个作业的优先级因子、时间因子和任务量因子,计算各个作业的评价值。可选地,所述第二计算模块,具体用于使用以下公式计算各个作业的评价值:其中,Worth[i]为作业i的评价值,p[i]为作业i的优先级的分值,为当前队列中的所有作业的优先级的分值之和,nowtime为当前时间,submittime为作业i的提交时间,untasks为作业i的未完成任务数,totaltasks为作业i的总任务数。可选地,所述的作业调度器,还包括:第一判断模块,用于判断所述第二选择模块选择的当前作业所在的用户占用的资源是否达到资源使用上限;所述分配模块,具体用于当所述第一判断模块判断出当前作业所在的用户占用的资源未达到资源使用上限时,从当前作业中选择任务,并向选择的任务分配资源。可选地,所述的作业调度器,还包括:第二判断模块,用于判断TaskTracker节点的剩余资源是否足以运行当前作业中的一个任务;所述分配模块,具体用于当所述第二判断模块判断出所述TaskTracker节点的剩余资源足以运行当前作业中的一个任务,从当前作业中选择任务,并向选择的任务分配资源。本专利技术根据作业的优先级、提交时间和任务运行数对Hadoop集群中的作业进行评价,并根据评价结果自适应地选择作业,缩短了优先级较高的小作业的等待时间,保证了对优先级高的小作业的公平性,同时缩短了多作业的整体运行时间,避免了局部最优的出现,提高了作业调度的适应性和调度合理性,改善了Hadoop集群处理任务的效率和整体性能。附图说明图1为本专利技术实施例中的一种Hadoop集群中的作业调度方法流程图;图2为本专利技术实施例中的一种Hadoop集群中的作业调度器的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,如果不冲突,本专利技术实施例以及实施例中的各个特征可以相互结合,均在本专利技术的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本专利技术实施例中提出了一种Hadoop集群中的作业调度方本文档来自技高网...
一种Hadoop集群中的作业调度方法和作业调度器

【技术保护点】
一种Hadoop集群中的作业调度方法,其特征在于,包括以下步骤:S1、获取所述Hadoop集群中的各个队列占用的资源量,根据各个队列占用的资源量,计算各个队列的资源使用率;S2、根据各个队列的资源使用率,选择资源使用率最低的队列作为当前队列;S3、获取当前队列中的各个作业的优先级、提交时间、未完成任务数和总任务数,根据各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值;S4、根据当前队列中的各个作业的评价值,从当前队列中选择当前作业;S5、从当前作业中选择任务,并向选择的任务分配资源。

【技术特征摘要】
1.一种Hadoop集群中的作业调度方法,其特征在于,包括以下步骤:S1、获取所述Hadoop集群中的各个队列占用的资源量,根据各个队列占用的资源量,计算各个队列的资源使用率;S2、根据各个队列的资源使用率,选择资源使用率最低的队列作为当前队列;S3、获取当前队列中的各个作业的优先级、提交时间、未完成任务数和总任务数,根据各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值;其中,所述根据各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值包括:计算当前队列中的各个作业的优先级与当前队列中的所有作业的优先级之和的比值,将该比值作为各个作业的优先级因子;计算当前时间与当前队列中的各个作业的提交时间的差值,将该差值与当前时间的比值作为各个作业的时间因子;计算当前队列中的各个作业的未完成任务数和总任务数的比值,将该比值作为各个作业的任务量因子,并根据各个作业的优先级因子、时间因子和任务量因子,计算各个作业的评价值;S4、根据当前队列中的各个作业的评价值,从当前队列中选择当前作业;S5、从当前作业中选择任务,并向选择的任务分配资源。2.如权利要求1所述的方法,其特征在于,所述根据各个作业的优先级、提交时间、未完成任务数和总任务数,计算当前队列中的各个作业的评价值,具体为:使用以下公式计算各个作业的评价值:其中,Worth[i]为作业i的评价值,p[i]为作业i的优先级的分值,为当前队列中的所有作业的优先级的分值之和,nowtime为当前时间,submittime为作业i的提交时间,untasks为作业i的未完成任务数,totaltasks为作业i的总任务数。3.如权利要求1所述的方法,其特征在于,所述步骤S4之后,还包括:判断当前作业所在的用户占用的资源是否达到资源使用上限;所述步骤S5,具体为:如果当前作业所在的用户占用的资源未达到资源使用上限,从当前作业中选择任务,并向选择的任务分配资源。4.如权利要求1所述的方法,其特征在于,所述步骤S4之后,还包括:所述步骤S4之后,还包括:判断TaskTracker节点的剩余资源是否足以运行当前作业中的一个任务;所述步骤S5,具体为:如果所述TaskTracker节点的剩余资源足以运行当前作业中的一个任务,从当前作业中选择任务,并向选择的任务分配资源。5.一种Hadoop集群中的作业调度器,其特征在于,包括:第一获取模块,用于获取所述Hadoop集群中...

【专利技术属性】
技术研发人员:宗栋瑞郭美思吴楠
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1