CN107038072A - 基于Hadoop系统的任务调度方法和装置 - Google Patents

基于Hadoop系统的任务调度方法和装置 Download PDF

Info

Publication number
CN107038072A
CN107038072A CN201610076093.5A CN201610076093A CN107038072A CN 107038072 A CN107038072 A CN 107038072A CN 201610076093 A CN201610076093 A CN 201610076093A CN 107038072 A CN107038072 A CN 107038072A
Authority
CN
China
Prior art keywords
task
mapping
sub
reduction
module
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
CN201610076093.5A
Other languages
English (en)
Other versions
CN107038072B (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.)
Burson Marsteller Network Game Development (shenzhen) Co Ltd
Original Assignee
Burson Marsteller Network Game Development (shenzhen) 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 Burson Marsteller Network Game Development (shenzhen) Co Ltd filed Critical Burson Marsteller Network Game Development (shenzhen) Co Ltd
Priority to CN201610076093.5A priority Critical patent/CN107038072B/zh
Publication of CN107038072A publication Critical patent/CN107038072A/zh
Application granted granted Critical
Publication of CN107038072B publication Critical patent/CN107038072B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种基于Hadoop系统的任务调度方法和装置,所述方法包括:统计已提交任务未运行的映射归约的总数目;从历史记录中读取待处理任务集中任务的映射归约数目;按照预设周期从待处理任务集中筛选出待启动任务,所述待启动任务的映射归约数目与所述总数目的和小于等于预设数目;所述预设数目为Hadoop系统在预设周期内可运行的映射归约数目;提交所述待启动任务。本发明提供的基于Hadoop系统的任务调度方法和装置,可实现负载均衡。

Description

基于Hadoop系统的任务调度方法和装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于Hadoop系统的任务调度方法和装置。
背景技术
Hadoop系统是一个由Apache基金会所开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。Hadoop系统实现了一种分布式文件系统(HadoopDistributed File System),简称HDFS。HDFS有高容错性的特点,可用来部署在低廉的硬件上;而且HDFS提供高吞吐量的应用程序数据访问,适合具有超大数据集的应用程序。
利用Hadoop系统目前可以处理一些周期性任务,比如每天执行一批设置好的Hadoop任务,以将ETL传入的前一天的所有日志信息存入数据仓库,其中ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)及加载(load)至目的端的过程。Hadoop系统处理任务时,由于Hadoop系统所在集群的总资源量(虚拟内核总数和内存总量)是固定的,总内存一般是充足的,而虚拟内核则是竞争性资源,因此需要对任务进行调度来保障Hadoop系统能够有序地完成任务处理。
目前,对Hadoop系统的任务进行调度是通过约束任务数量来实现的,具体是循环检测正在处理的任务数量,如果检测到的任务数量没有达到任务数量阈值,就会启动新的任务;如果检测到的任务数量达到任务数量阈值,就不会启动新的任务。
然而,在实际使用过程中,Hadoop系统处理每个任务消耗的资源量是有差异的,当正在处理的多个任务均消耗大量资源时,就会因资源竞争导致资源池卡死以及任务超时,因而目前的Hadoop系统任务调度方法会导致负载不均衡。
发明内容
基于此,有必要针对目前的Hadoop系统任务调度方法会导致负载不均衡的问题,提供一种基于Hadoop系统的任务调度方法和装置。
一种基于Hadoop系统的任务调度方法,所述方法包括:
统计已提交任务未运行的映射归约的总数目;
从历史记录中读取待处理任务集中任务的映射归约数目;
按照预设周期从待处理任务集中筛选出待启动任务,所述待启动任务的映射归约数目与所述总数目的和小于等于预设数目;所述预设数目为Hadoop系统在预设周期内可运行的映射归约数目;
提交所述待启动任务。
在其中一个实施例中,所述统计已提交任务未运行的映射归约的总数目,包括:
获取已提交任务集;
从历史记录读取所述已提交任务集中各任务所对应的子工作任务的映射归约数目;
获取已提交任务集中各任务的各子工作任务的子工作任务运行进度;
根据读取的映射归约数目以及所述子工作任务运行进度,计算已提交任务集的未运行的映射归约的总数目。
在其中一个实施例中,所述子工作任务运行进度为相应子工作任务对应的映射归约总量中已完成的映射归约的比例;
所述根据读取的映射归约数目以及所述子工作任务运行进度,计算已提交任务集的未运行的映射归约的总数目,包括:
根据所述子工作任务运行进度计算相应子工作任务未完成的映射归约的比例;
将读取的映射归约数目以相应子工作任务未完成的映射归约的比例为权重计算加权和,获得已提交任务集的未运行的映射归约的总数目。
在其中一个实施例中,所述按照预设周期从待处理任务集中筛选出待启动任务,包括:
逐个从待处理任务集中取出任务;
从历史记录读取取出的任务的映射归约数目;
判断取出的任务的映射归约数目与所述总数目的和是否小于等于预设数目;
若是,则将取出的任务加入待启动任务集,并更新所述总数目,继续执行所述逐个从待处理任务集中取出任务的步骤;
若否,则提交所述待启动任务集。
在其中一个实施例中,所述若否,则提交所述待启动任务集,包括:
若否,判断是否满足:所述总数目小于所述预设数目的第一条件和/或所述待处理任务集中还有任务的第二条件;
若所述第一条件和所述第二条件均满足,则执行所述逐个从待处理任务集中取出任务的步骤;
若所述第一条件和所述第二条件中至少一者不满足,则提交所述待启动任务集。
上述基于Hadoop系统的任务调度方法,虽然单个任务消耗的资源量是不同的,但是Hadoop系统在处理任务时会将任务拆分成若干子工作任务(称为Job),而子工作任务在处理时又会拆分成映射(称为Map)和归约(称为Reduce),每个映射或者归约消耗的资源量是固定的。因此依据Hadoop系统在预设周期内可运行的映射归约数目来定期约束任务的提交,可以精确控制Hadoop系统处理任务所消耗的资源量,实现负载均衡。而且利用任务的历史记录,可通过任务历史的映射归约数目来预测待处理任务的映射归约数目,保证了可以快速确定待处理任务的映射归约数目,从而保障任务调度的效率。
一种基于Hadoop系统的任务调度装置,所述装置包括:
统计模块,用于统计已提交任务未运行的映射归约的总数目;
第一读取模块,用于从历史记录中读取待处理任务集中任务的映射归约数目;
筛选模块,用于按照预设周期从待处理任务集中筛选出待启动任务,所述待启动任务的映射归约数目与所述总数目的和小于等于预设数目;所述预设数目为Hadoop系统在预设周期内可运行的映射归约数目;
提交模块,用于提交所述待启动任务。
在其中一个实施例中,所述统计模块包括:
获取模块,用于获取已提交任务集;
第二读取模块,用于从历史记录读取所述已提交任务集中各任务所对应的子工作任务的映射归约数目;
子工作任务运行进度获取模块,用于获取已提交任务集中各任务的各子工作任务的子工作任务运行进度;
计算模块,用于根据读取的映射归约数目以及所述子工作任务运行进度,计算已提交任务集的未运行的映射归约的总数目。
在其中一个实施例中,所述子工作任务运行进度为相应子工作任务对应的映射归约总量中已完成的映射归约的比例;
所述计算模块还用于根据所述子工作任务运行进度计算相应子工作任务未完成的映射归约的比例;将读取的映射归约数目以相应子工作任务未完成的映射归约的比例为权重计算加权和,获得已提交任务集的未运行的映射归约的总数目。
在其中一个实施例中,所述筛选模块包括:
任务提取模块,用于逐个从待处理任务集中取出任务;
第三读取模块,用于从历史记录读取取出的任务的映射归约数目;
第一判断模块,用于判断取出的任务的映射归约数目与所述总数目的和是否小于等于预设数目;
待启动任务集更新模块,用于若所述第一判断模块判断为是,则将取出的任务加入待启动任务集,更新所述总数目,并通知所述任务提取模块;
所述提交模块还用于若所述第一判断模块判断为否,则提交所述待启动任务集。
在其中一个实施例中,所述筛选模块还包括:
第二判断模块,用于若所述第一判断模块判断为否,则继续判断是否满足:所述总数目小于所述预设数目的第一条件和/或所述待处理任务集中还有任务的第二条件;
所述任务提取模块还用于若所述第一条件和所述第二条件均满足,则继续逐个从待处理任务集中取出任务;
所述提交模块还用于若所述第一条件和所述第二条件中至少一者不满足,则提交所述待启动任务集。
上述基于Hadoop系统的任务调度装置,虽然单个任务消耗的资源量是不同的,但是Hadoop系统在处理任务时会将任务拆分成若干子工作任务(称为Job),而子工作任务在处理时又会拆分成映射(称为Map)和归约(称为Reduce),每个映射或者归约消耗的资源量是固定的。因此依据Hadoop系统在预设周期内可运行的映射归约数目来定期约束任务的提交,可以精确控制Hadoop系统处理任务所消耗的资源量,实现负载均衡。而且利用任务的历史记录,可通过任务历史的映射归约数目来预测待处理任务的映射归约数目,保证了可以快速确定待处理任务的映射归约数目,从而保障任务调度的效率。
附图说明
图1为一个实施例中基于Hadoop系统的任务调度方法的流程示意图;
图2为另一个实施例中基于Hadoop系统的任务调度方法的流程示意图;
图3为一个实施例中基于Hadoop系统的任务调度装置的结构框图;
图4为一个实施例中统计模块的结构框图;
图5为另一个实施例中基于Hadoop系统的任务调度装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
Hadoop系统包括任务调度系统、任务拆分系统(称为Hive)、映射归约系统(称为Hadoop MapReduce)和资源池(称为Hadoop Yarn)。其中任务调度系统用于实现本发明实施例的基于Hadoop系统的任务调度方法,按照预设的策略提交待启动任务。任务拆分系统用于将提交的待启动任务所包括的查询语句(Hive sql)转换成一个个子工作任务(Job),并将子工作任务提交到映射归约系统。映射归约系统用于将子工作任务拆分成映射(Map)和归约(Reduce),从资源池申请资源以处理映射和归约。资源池则用于对资源进行管理,接收到资源申请后,判断是否有足够的资源,如果没有则等待资源释放;如果有,则按照资源申请提供资源,资源包括虚拟内核和内存。映射归约系统执行子工作任务完毕后,发送结束信息到任务拆分系统。任务拆分系统接收到结束信息,根据接收到的结束信息,如果任务池中的相应任务处理完毕,则发送消息到任务调度系统,并从相应任务集中移除已完成的任务。映射可用来把一组键值对映射成一组新的键值对,归约可用来保证所有映射的键值对中的每一个共享相同的键组。
如图1所示,在一个实施例中,提供了一种基于Hadoop系统的任务调度方法,本实施例以该方法应用于Hadoop系统中的任务调度系统来举例说明。该方法具体包括如下步骤:
步骤102,统计已提交任务未运行的映射归约的总数目。
具体地,任务调度系统可根据任务拆分系统反馈的消息统计已提交任务未运行的映射归约的总数目,任务调度系统也可以通过主动查询统计已提交任务未运行的映射归约的总数目。已提交任务未运行的映射归约的总数目,是指任务调度系统提交的任务被拆分成映射和归约后,还未被映射归约系统运行完毕的映射归约的总数目。任务被提交到任务拆分系统后,会被拆分成多个子工作任务,子工作任务需要从有限的资源池中申请到资源才能运行,子工作任务开始运行的时间是不确定的。其中任务是周期性执行的离线任务。
映射归约用来统称映射和归约,由于一个映射占用一个虚拟内核,一个归约也占用一个虚拟内核,所以统计映射和归约的数目时映射的数目和归约的数目会累加,比如一个映射和一个归约统计的映射归约数目为2,2个映射或者2个归约统计的映射归约数目也是2。
步骤104,从历史记录中读取待处理任务集中任务的映射归约数目。
具体地,待处理任务集是指需要Hadoop系统处理的任务的集合,可从任务总集合中按照任务优先级挑选任务构成待处理任务集。Hadoop系统可在运行每个任务时获取该任务的映射归约数目并记录到历史记录中,任务调度系统便可以在需要时从历史记录中读取待处理任务集中各个任务的映射归约数目。历史记录可保存在数据库中。
步骤106,按照预设周期从待处理任务集中筛选出待启动任务,待启动任务的映射归约数目与总数目的和小于等于预设数目;预设数目为Hadoop系统在预设周期内可运行的映射归约数目。
其中,预设周期可根据需要设定,比如可取1到10分钟,还比如可取90秒钟。预设周期是巡检周期,周期性地筛选出待启动任务并提交,预设周期可小于预设数目的映射归约运行所消耗的总时间,也可以大于运行一个映射或者归约所消耗的时间。预设数目是Hadoop系统在预设周期内可运行的映射归约数目,为了充分利用资源,预设数目可设置为Hadoop系统在预设周期内可运行的映射归约数目最大值。任务调度系统筛选出的待启动任务的映射归约数目与总数目的和最好接近预设数目,以最大化地利用资源。
步骤108,提交待启动任务。
具体地,任务调度系统在筛选出待启动任务后,向任务拆分系统提交筛选出的待启动任务。待启动任务可构成待启动任务集,由任务调度系统提交该待启动任务集。
上述基于Hadoop系统的任务调度方法,虽然单个任务消耗的资源量是不同的,但是Hadoop系统在处理任务时会将任务拆分成若干子工作任务,而子工作任务在处理时又会拆分成映射和归约,每个映射或者归约消耗的资源量是固定的。因此依据Hadoop系统在预设周期内可运行的映射归约数目来定期约束任务的提交,可以精确控制Hadoop系统处理任务所消耗的资源量,实现负载均衡。而且利用任务的历史记录,可通过任务历史的映射归约数目来预测待处理任务的映射归约数目,保证了可以快速确定待处理任务的映射归约数目,从而保障任务调度的效率。
如图2所示,在一个实施例中,一种基于Hadoop系统的任务调度方法,本实施例以该方法应用于Hadoop系统中的任务调度系统来举例说明。该方法具体包括如下步骤:
步骤202,获取已提交任务集。
其中,已提交任务集是指当前任务调度系统提交到任务拆分系统的任务构成的集合,任务调度系统可从任务拆分系统查询获得已提交任务集。
步骤204,从历史记录读取已提交任务集中各任务所对应的子工作任务的映射归约数目。
具体地,每个任务在被处理时,每个任务对应的子工作任务数目以及每个子工作任务对应的映射归约数目会记录在历史记录中。任务调度系统可在需要时从历史记录中读取任务对应的各个子工作任务的映射归约数目。
步骤206,获取已提交任务集中各任务的各子工作任务的子工作任务运行进度。
具体地,任务调度系统可主动向映射归约系统查询已提交任务集中各任务的各子工作任务的子工作任务运行进度,映射归约系统也可以在已提交任务集中各任务的各子工作任务的子工作任务运行进度发生变化时通知任务调度系统。
子工作任务运行进度是指将子工作任务拆分成相应的映射和归约后运行的进展情况的量化表示,可以用相应子工作任务对应的映射归约总量中已完成的映射归约的比例来表示,也可以用相应子工作任务对应的映射归约总量中未完成的映射归约的比例来表示。
步骤208,根据读取的映射归约数目以及子工作任务运行进度,计算已提交任务集的未运行的映射归约的总数目。
具体地,任务调度系统读取到子工作任务对应的映射归约数目,而且获取到能够反映映射归约运行的进展情况的子工作任务运行进度,便可以推测出已提交任务集中的任务被拆分出子工作任务再拆分成映射和归约后未运行的映射归约的总数目。未运行的映射归约的总数目反映的是已提交任务集中的任务处理时还需要的资源量。
在一个实施例中,子工作任务运行进度为相应子工作任务对应的映射归约总量中已完成的映射归约的比例;步骤208具体包括:根据子工作任务运行进度计算相应子工作任务未完成的映射归约的比例;将读取的映射归约数目以相应子工作任务未完成的映射归约的比例为权重计算加权和,获得已提交任务集的未运行的映射归约的总数目。
举例说明,假设已提交任务集的一个任务拆分成的子工作任务数量为N,从历史记录查询到这N个子工作任务各自的映射归约数目为C1、C2……CN,再从Hadoop获取到这N个子工作任务各自的子工作任务运行进度为P1、P2……PN,子工作任务运行进度以百分比形式表示。那么已提交任务集的未运行的映射归约的总数目为:C1*(1-P1)+C2*(1-P2)+……+CN*(1-PN)。其中,(1-P1)、(1-P2)……(1-PN)分别是根据子工作任务运行进度计算出的相应子工作任务未完成的映射归约的比例。
上述步骤202至步骤208通过历史记录和子工作任务运行进度,可以推测出正在执行的任务还未运行的映射归约数目,从而可以推测出正在执行的任务还需要的资源量,从而可以实现对已提交任务集的未运行的映射归约的总数目的快速计算,提高任务调度效率。
步骤210,逐个从待处理任务集中取出任务。
任务调度系统可按次序或者随机,逐个地从待处理任务集中取出任务进行处理。按次序比如按照待处理任务集中任务的序号升序或降序的顺序,还可以采用其它约定好的顺序。
步骤212,从历史记录读取取出的任务的映射归约数目。
具体地,任务调度系统每取出一个任务,从历史记录中读取该取出的任务的映射归约数目,以预测提交该任务时将拆分出的映射归约数目,从而预测提交该任务进行处理所需的资源量。
步骤214,判断取出的任务的映射归约数目与总数目的和是否小于等于预设数目;若是,则执行步骤216之后执行步骤210;若否,则执行步骤218。
具体地,任务调度系统计算读取到的取出的任务的映射归约数目与总数目的和,从而判断该计算出的和是否小于等于预设数目。如果判断为是,即计算出的和未超过预设数目,则执行步骤216之后再执行步骤210。如果判断为否,即计算出的和超过预设数目,则执行步骤218。
步骤216,将取出的任务加入待启动任务集,并更新总数目。
具体地,如果计算出的和未超出预设数目,说明将取出的任务提交后产生的映射归约数目,加上当前已提交任务集的未运行映射归约总数目,未超过Hadoop系统的处理能力,取出的任务是可以提交的,加入到待启动任务集中。更新总数目时,可在原本的总数目基础上加上读取到的取出的任务的映射归约数目,获得新的总数目。如果计算出的和小于预设数目,则可继续执行步骤210以取出下一个任务进行处理,如果计算出的和等于预设数目,则可以直接提交待启动任务集。
步骤218,提交待启动任务集。
具体地,任务调度系统将待启动任务集提交到任务拆分系统进行处理。
在一个实施例中,步骤218具体包括:判断是否满足:总数目小于预设数目的第一条件和/或待处理任务集中还有任务的第二条件;若第一条件和第二条件均满足,则执行逐个从待处理任务集中取出任务的步骤;若第一条件和第二条件中至少一者不满足,则提交待启动任务集。
具体地,预先设置第一条件和第二条件,任务调度系统可先判断是否满足第一条件和第二条件中的一个,若不满足则再判断是否满足另一个。当第一条件和第二条件均满足时,说明Hadoop系统还可以承接新任务且待处理任务集中也确实有需要提交的任务,则可以继续执行步骤210来精确控制需提交的任务。当第一条件和第二条件中至少一个不满足时,或者Hadoop系统无法承接新任务,或者待处理任务集已经处理完毕,则可以提交待启动任务集。
本实施例中,利用历史记录来预测Hadoop系统精确到映射归约维度的任务承接能力,从而逐个地从待处理任务集中筛选符合Hadoop系统的任务承接能力的待启动任务,且筛选出的待启动任务将尽可能接近预设数目,以保证Hadoop系统资源的有效利用,避免资源浪费。
如图3所示,在一个实施例中,提供了一种基于Hadoop系统的任务调度装置300,包括:统计模块310、第一读取模块320、筛选模块330和提交模块340。
统计模块310,用于统计已提交任务未运行的映射归约的总数目。
第一读取模块320,用于从历史记录中读取待处理任务集中任务的映射归约数目。
筛选模块330,用于按照预设周期从待处理任务集中筛选出待启动任务,待启动任务的映射归约数目与总数目的和小于等于预设数目。预设数目为Hadoop系统在预设周期内可运行的映射归约数目。
提交模块340,用于提交待启动任务。
上述基于Hadoop系统的任务调度装置300,虽然单个任务消耗的资源量是不同的,但是Hadoop系统在处理任务时会将任务拆分成若干子工作任务(称为Job),而子工作任务在处理时又会拆分成映射(称为Map)和归约(称为Reduce),每个映射或者归约消耗的资源量是固定的。因此依据Hadoop系统在预设周期内可运行的映射归约数目来定期约束任务的提交,可以精确控制Hadoop系统处理任务所消耗的资源量,实现负载均衡。而且利用任务的历史记录,可通过任务历史的映射归约数目来预测待处理任务的映射归约数目,保证了可以快速确定待处理任务的映射归约数目,从而保障任务调度的效率。
如图4所示,在一个实施例中,统计模块310包括:获取模块311、第二读取模块312、子工作任务运行进度获取模块313和计算模块314。
获取模块311,用于获取已提交任务集;
第二读取模块312,用于从历史记录读取已提交任务集中各任务所对应的子工作任务的映射归约数目;
子工作任务运行进度获取模块313,用于获取已提交任务集中各任务的各子工作任务的子工作任务运行进度;
计算模块314,用于根据读取的映射归约数目以及子工作任务运行进度,计算已提交任务集的未运行的映射归约的总数目。
本实施例中,通过历史记录和子工作任务运行进度,可以推测出正在执行的任务还未运行的映射归约数目,从而可以推测出正在执行的任务还需要的资源量,从而可以实现对已提交任务集的未运行的映射归约的总数目的快速计算,提高任务调度效率。
在一个实施例中,子工作任务运行进度为相应子工作任务对应的映射归约总量中已完成的映射归约的比例。计算模块314还用于根据子工作任务运行进度计算相应子工作任务未完成的映射归约的比例;将读取的映射归约数目以相应子工作任务未完成的映射归约的比例为权重计算加权和,获得已提交任务集的未运行的映射归约的总数目。
如图5所示,在一个实施例中,筛选模块330包括:任务提取模块331、第三读取模块332、第一判断模块333和待启动任务集更新模块334。
任务提取模块331,用于逐个从待处理任务集中取出任务。
第三读取模块332,用于从历史记录读取取出的任务的映射归约数目。
第一判断模块333,用于判断取出的任务的映射归约数目与总数目的和是否小于等于预设数目。
待启动任务集更新模块334,用于若第一判断模块判断为是,则将取出的任务加入待启动任务集,更新总数目,并通知任务提取模块331。
提交模块340还用于若第一判断模块333判断为否,则提交待启动任务集。
在一个实施例中,筛选模块330还包括第二判断模块335。
第二判断模块335,用于若第一判断模块333判断为否,则继续判断是否满足:总数目小于预设数目的第一条件和/或待处理任务集中还有任务的第二条件。
任务提取模块331还用于若第一条件和第二条件均满足,则继续逐个从待处理任务集中取出任务。
提交模块340还用于若第一条件和第二条件中至少一者不满足,则提交待启动任务集。
本实施例中,利用历史记录来预测Hadoop系统精确到映射归约维度的任务承接能力,从而逐个地从待处理任务集中筛选符合Hadoop系统的任务承接能力的待启动任务,且筛选出的待启动任务将尽可能接近预设数目,以保证Hadoop系统资源的有效利用,避免资源浪费。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于Hadoop系统的任务调度方法,包括:
统计已提交任务未运行的映射归约的总数目;
从历史记录中读取待处理任务集中任务的映射归约数目;
按照预设周期从所述待处理任务集中筛选出待启动任务,所述待启动任务的映射归约数目与所述总数目的和小于等于预设数目;所述预设数目为Hadoop系统在预设周期内可运行的映射归约数目;
提交所述待启动任务。
2.根据权利要求1所述的方法,其特征在于,所述统计已提交任务未运行的映射归约的总数目,包括:
获取已提交任务集;
从历史记录读取所述已提交任务集中各任务所对应的子工作任务的映射归约数目;
获取所述已提交任务集中各任务的各子工作任务的子工作任务运行进度;
根据读取的映射归约数目以及所述子工作任务运行进度,计算所述已提交任务集的未运行的映射归约的总数目。
3.根据权利要求2所述的方法,其特征在于,所述子工作任务运行进度为相应子工作任务对应的映射归约总量中已完成的映射归约的比例;
所述根据读取的映射归约数目以及所述子工作任务运行进度,计算所述已提交任务集的未运行的映射归约的总数目,包括:
根据所述子工作任务运行进度计算相应子工作任务未完成的映射归约的比例;
将所述读取的映射归约数目以相应子工作任务未完成的映射归约的比例为权重计算加权和,获得所述已提交任务集的未运行的映射归约的总数目。
4.根据权利要求1所述的方法,其特征在于,所述按照预设周期从所述待处理任务集中筛选出待启动任务,包括:
逐个从所述待处理任务集中取出任务;
从历史记录读取取出的任务的映射归约数目;
判断所述取出的任务的映射归约数目与所述总数目的和是否小于等于预设数目;
若是,则将所述取出的任务加入待启动任务集,并更新所述总数目,继续执行所述逐个从所述待处理任务集中取出任务的步骤;
若否,则提交所述待启动任务集。
5.根据权利要求4所述的方法,其特征在于,所述若否,则提交所述待启动任务集,包括:
若否,判断是否满足:所述总数目小于所述预设数目的第一条件和/或所述待处理任务集中还有任务的第二条件;
若所述第一条件和所述第二条件均满足,则执行所述逐个从所述待处理任务集中取出任务的步骤;
若所述第一条件和所述第二条件中至少一者不满足,则提交所述待启动任务集。
6.一种基于Hadoop系统的任务调度装置,其特征在于,包括:
统计模块,用于统计已提交任务未运行的映射归约的总数目;
第一读取模块,用于从历史记录中读取待处理任务集中任务的映射归约数目;
筛选模块,用于按照预设周期从所述待处理任务集中筛选出待启动任务,所述待启动任务的映射归约数目与所述总数目的和小于等于预设数目;所述预设数目为Hadoop系统在预设周期内可运行的映射归约数目;
提交模块,用于提交所述待启动任务。
7.根据权利要求6所述的装置,其特征在于,所述统计模块包括:
获取模块,用于获取已提交任务集;
第二读取模块,用于从历史记录读取所述已提交任务集中各任务所对应的子工作任务的映射归约数目;
子工作任务运行进度获取模块,用于获取所述已提交任务集中各任务的各子工作任务的子工作任务运行进度;
计算模块,用于根据读取的映射归约数目以及所述子工作任务运行进度,计算所述已提交任务集的未运行的映射归约的总数目。
8.根据权利要求7所述的装置,其特征在于,所述子工作任务运行进度为相应子工作任务对应的映射归约总量中已完成的映射归约的比例;
所述计算模块还用于根据所述子工作任务运行进度计算相应子工作任务未完成的映射归约的比例;将所述读取的映射归约数目以相应子工作任务未完成的映射归约的比例为权重计算加权和,获得所述已提交任务集的未运行的映射归约的总数目。
9.根据权利要求6所述的装置,其特征在于,所述筛选模块包括:
任务提取模块,用于逐个所述从待处理任务集中取出任务;
第三读取模块,用于从历史记录读取取出的任务的映射归约数目;
第一判断模块,用于判断所述取出的任务的映射归约数目与所述总数目的和是否小于等于预设数目;
待启动任务集更新模块,用于若所述第一判断模块判断为是,则将所述取出的任务加入待启动任务集,更新所述总数目,并通知所述任务提取模块;
所述提交模块还用于若所述第一判断模块判断为否,则提交所述待启动任务集。
10.根据权利要求9所述的装置,其特征在于,所述筛选模块还包括:
第二判断模块,用于若所述第一判断模块判断为否,则继续判断是否满足:所述总数目小于所述预设数目的第一条件和/或所述待处理任务集中还有任务的第二条件;
所述任务提取模块还用于若所述第一条件和所述第二条件均满足,则继续逐个从所述待处理任务集中取出任务;
所述提交模块还用于若所述第一条件和所述第二条件中至少一者不满足,则提交所述待启动任务集。
CN201610076093.5A 2016-02-03 2016-02-03 基于Hadoop系统的任务调度方法和装置 Active CN107038072B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610076093.5A CN107038072B (zh) 2016-02-03 2016-02-03 基于Hadoop系统的任务调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610076093.5A CN107038072B (zh) 2016-02-03 2016-02-03 基于Hadoop系统的任务调度方法和装置

Publications (2)

Publication Number Publication Date
CN107038072A true CN107038072A (zh) 2017-08-11
CN107038072B CN107038072B (zh) 2019-10-25

Family

ID=59532096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610076093.5A Active CN107038072B (zh) 2016-02-03 2016-02-03 基于Hadoop系统的任务调度方法和装置

Country Status (1)

Country Link
CN (1) CN107038072B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901931A (zh) * 2019-03-07 2019-06-18 北京奇艺世纪科技有限公司 一种归约函数数量确定方法、装置及系统
CN110287003A (zh) * 2019-06-28 2019-09-27 北京九章云极科技有限公司 资源的管理方法和管理系统
CN112101891A (zh) * 2020-07-30 2020-12-18 杭州正策信息科技有限公司 一种应用于项目申报系统中的数据处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059552A1 (en) * 2012-08-24 2014-02-27 International Business Machines Corporation Transparent efficiency for in-memory execution of map reduce job sequences
CN103701886A (zh) * 2013-12-19 2014-04-02 中国信息安全测评中心 一种云计算环境下的服务及资源分层调度方法
CN104679590A (zh) * 2013-11-27 2015-06-03 阿里巴巴集团控股有限公司 分布式计算系统中的Map优化方法及装置
CN104735095A (zh) * 2013-12-18 2015-06-24 中国移动通信集团四川有限公司 一种云计算平台作业调度方法及装置
US20150355951A1 (en) * 2013-01-28 2015-12-10 Hewlett-Packard Development Company, L.P. Optimizing execution and resource usage in large scale computing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059552A1 (en) * 2012-08-24 2014-02-27 International Business Machines Corporation Transparent efficiency for in-memory execution of map reduce job sequences
US20150355951A1 (en) * 2013-01-28 2015-12-10 Hewlett-Packard Development Company, L.P. Optimizing execution and resource usage in large scale computing
CN104679590A (zh) * 2013-11-27 2015-06-03 阿里巴巴集团控股有限公司 分布式计算系统中的Map优化方法及装置
CN104735095A (zh) * 2013-12-18 2015-06-24 中国移动通信集团四川有限公司 一种云计算平台作业调度方法及装置
CN103701886A (zh) * 2013-12-19 2014-04-02 中国信息安全测评中心 一种云计算环境下的服务及资源分层调度方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901931A (zh) * 2019-03-07 2019-06-18 北京奇艺世纪科技有限公司 一种归约函数数量确定方法、装置及系统
CN109901931B (zh) * 2019-03-07 2021-06-15 北京奇艺世纪科技有限公司 一种归约函数数量确定方法、装置及系统
CN110287003A (zh) * 2019-06-28 2019-09-27 北京九章云极科技有限公司 资源的管理方法和管理系统
CN110287003B (zh) * 2019-06-28 2020-04-21 北京九章云极科技有限公司 资源的管理方法和管理系统
CN112101891A (zh) * 2020-07-30 2020-12-18 杭州正策信息科技有限公司 一种应用于项目申报系统中的数据处理方法
CN112101891B (zh) * 2020-07-30 2021-05-04 杭州正策信息科技有限公司 一种应用于项目申报系统中的数据处理方法

Also Published As

Publication number Publication date
CN107038072B (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN106802826B (zh) 一种基于线程池的业务处理方法及装置
US9442760B2 (en) Job scheduling using expected server performance information
CN105700948A (zh) 一种用于在集群中调度计算任务的方法与设备
CN105988872A (zh) 一种cpu资源分配的方法、装置及电子设备
CN105095327A (zh) 一种分布式etl系统及调度方法
CN106557369A (zh) 一种多线程的管理方法及系统
CN106354729A (zh) 一种图数据处理方法、装置和系统
CN111400010B (zh) 任务调度方法及装置
US8458136B2 (en) Scheduling highly parallel jobs having global interdependencies
CN111190691A (zh) 适用于虚拟机的自动迁移方法、系统、装置及存储介质
CN106383746A (zh) 大数据处理系统的配置参数确定方法和装置
CN107038072A (zh) 基于Hadoop系统的任务调度方法和装置
CN102760073B (zh) 一种任务调度方法、系统及装置
CN103699443A (zh) 任务分发方法及扫描器
CN107515781A (zh) 一种多处理器系统确定性调度和负载均衡方法
Mohamed et al. Hadoop-MapReduce job scheduling algorithms survey
CN105607956B (zh) 一种计算机中的任务分配方法及系统
Ruan et al. A comparative study of large-scale cluster workload traces via multiview analysis
US20230259409A1 (en) Container scheduling for executing dynamic workloads in cloud computing environments
CN106874080B (zh) 基于分布式服务器集群的数据计算方法及系统
CN109189581B (zh) 一种作业调度方法和装置
CN113535346B (zh) 线程数量调整的方法、装置、设备及计算机存储介质
CN108268312A (zh) 任务调度方法和调度器
CN109976873A (zh) 容器化分布式计算框架的调度方案获取方法及调度方法
CN113961338A (zh) 一种动态线程池的管理系统、管理方法及线程任务处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant