CN107885595B - 一种资源分配方法、相关设备及*** - Google Patents

一种资源分配方法、相关设备及*** Download PDF

Info

Publication number
CN107885595B
CN107885595B CN201610878801.7A CN201610878801A CN107885595B CN 107885595 B CN107885595 B CN 107885595B CN 201610878801 A CN201610878801 A CN 201610878801A CN 107885595 B CN107885595 B CN 107885595B
Authority
CN
China
Prior art keywords
computing
resource
ref
size
task
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.)
Active
Application number
CN201610878801.7A
Other languages
English (en)
Other versions
CN107885595A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610878801.7A priority Critical patent/CN107885595B/zh
Priority to PCT/CN2017/090038 priority patent/WO2018059029A1/zh
Priority to EP17854483.9A priority patent/EP3518107B1/en
Publication of CN107885595A publication Critical patent/CN107885595A/zh
Priority to US16/369,564 priority patent/US11003507B2/en
Application granted granted Critical
Publication of CN107885595B publication Critical patent/CN107885595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种计算资源分配方法、相关设备及基于映射/归约MapReduce的分布式***,***包括管理节点和目标计算节点,其中:管理节点用于获取M个计算任务并根据M个计算任务的数据大小建立资源评估模型;将M个计算任务中的部分计算任务和资源评估模型的信息发送给目标计算节点;目标计算节点用于接收管理节点发送的部分计算任务和资源评估模型的信息;在执行目标任务的每个计算阶段前将计算阶段的输入数据代入到资源评估模型以计算计算阶段所需要的计算资源的资源大小;通过预设资源池中该资源大小的计算资源计算输入数据。采用本发明,能够提高计算资源的利用率。

Description

一种资源分配方法、相关设备及***
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源分配方法、相关设备及***。
背景技术
Hadoop是一个由Apache基金会所开发的分布式***基础架构,能够对大量数据进行分布式处理。其核心设计是分布式文件***(英文:Hadoop Distributed File System,简称:HDFS)和映射/归约MapReduce编程模型。HDFS为海量数据提供了存储,而MapReduce为海量数据提供了计算。通常情况下,Hadoop的MapReduce处理一组输入的键值对(key/valuepairs),经过用户指定的MapReduce函数处理后,最终输出一组键值对。MapReduce实际上定义了Map函数接口和Reduce函数接口,Map函数用于转化输入记录得到中间结果,Reduce函数用于将中间结果转化到最终结果。因此用户可以很简单的通过参数指定Map函数和Reduce函数来对数据进行计算。如图1所示,图中的映射任务(Map task)由该Map函数实现,图中的归约任务(Reduce task)由该Reduce函数实现。
DREAMS是一个扩展了另一种资源协调者(英文:Yet Another ResourceNegotiator,简称:YARN)的资源调度框架,如图2所示,DREAMS用于解决MapReduce中Reduce阶段资源分配不均衡的问题。DREAMS提出了实时预测每个Reduce任务处理的数据量大小,然后基于该数据量大小通过任务性能评估模型评估每个Reduce任务执行时所需的计算资源Container的大小,其执行流程如下:
步骤1:每个节点管理器(英文:NodeManager,简称:NM)运行分区大小监控(Partition Size Monitor)模块,用于监控所有Map任务输出的数据信息,并通过NM的心跳将该数据信息发送给应用程序管理器(英文:Application Master,简称:AM)端的分区大小预测(Partition Size Predictor)模块;
步骤2:Partition Size Predictor接收所有NM上Partition Size Monitor发送的数据信息,并根据该数据信息实时预测各个Reduce任务的数据量大小;
步骤3:AM上的Task Duration Estimator根据各个Reduce的数据量大小建立用于计算资源大小的资源模型;
步骤4:AM上的资源分配(Resource Allocator)模块通过该资源模型根据每个Reduce任务的数据量大小预测每个Reduce任务所需的计算资源的大小;
步骤5:AM与资源管理器(英文:ResourceManager,简称:RM)上的细粒度容器调度(Fine-grained Container Scheduler)模块通信,为各个Reduce任务申请所需的计算资源Container;
步骤6:AM将各个Reduce任务所需的计算资源通知给各个Reduce任务所分布的计算节点;
步骤7:各个Reduce所在的计算节点根据指定的计算资源执行Reduce任务。
现有技术的缺陷在于,某些Reduce任务的执行分为多个计算阶段,每个计算阶段计算所采用的算法的复杂度不一样,相应地,也会导致每个计算阶段计算所需要的计算资源也不一样,如果在Reduce任务的执行前就为该Reduce任务的整个执行阶段分配好所需的计算资源,则会导致计算资源浪费。
发明内容
本发明实施例公开了一种资源分配方法、相关设备及***,能够提高计算资源的利用率。
第一方面,本发明实施例提供了一种基于映射/归约MapReduce的分布式***,其特征在于,该***包括管理节点和目标计算节点,其中:该管理节点用于获取M个计算任务并根据该M个计算任务的数据大小建立资源评估模型;将该M个计算任务中的部分计算任务和该资源评估模型的信息发送给目标计算节点,每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;该目标计算节点用于接收该管理节点发送的该部分计算任务和该资源评估模型的信息;根据所述资源评估模型的信息得到所述资源评估模型,在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型以计算该计算阶段所需要的计算资源的资源大小;通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过执行上述步骤,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
结合第一方面,在第一方面的第一种可能的实现方式中,该管理节点还用于向该计算节点发送为该部分计算任务中每个计算任务分配的初始计算资源的信息;该目标计算节点还用于接收为该每个计算任务分配的初始计算资源的信息,并将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
结合第一方面,或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该目标计算节点通过预设资源池中该资源大小的计算资源计算该输入数据,具体为:将该资源大小代入预设优先级算法计算该每个计算阶段的优先级并判断该计算阶段的优先级是否高于预设优先级阈值,该优先级用于体现该计算阶段的重要性;或者判断该资源大小是否不大于预设资源池中剩余的计算资源的数量;若是,则通过该资源池中该资源大小的计算资源计算该输入数据。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该计算节点还用于在计算完该输入数据后向该资源池释放该资源大小的计算资源。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该计算任务包括映射map任务,或者归约reduce任务。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,或者第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
第二方面,本发明实施例提供一种管理节点,该管理节点为基于映射/归约MapReduce的分布式***中的管理节点,该管理节点包括:获取单元,用于获取M个计算任务并根据该M个计算任务的数据大小建立资源评估模型;
发送单元,用于将该M个计算任务中的部分计算任务和该资源评估模型的信息发送给目标计算节点,该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;该目标计算节点用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型以计算该计算阶段所需要的计算资源的资源大小;该目标计算节点还用于通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务,该目标计算节点为该基于MapReduce的分布式***中的计算节点。
通过运行上述单元,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
结合第二方面,在第二方面的第一种可能的实现方式中,该发送单元还用于向该计算节点发送为该部分计算任务中每个计算任务分配的初始计算资源的信息,以使该计算节点将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
结合第二方面,或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,该计算任务包括映射map任务,或者归约reduce任务。
结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
第三方面,本发明实施例提供一种目标计算节点,该目标计算节点为基于映射/归约MapReduce的分布式***中的计算节点,该目标计算节点包括:接收单元,用于接收该管理节点发送的部分计算任务和资源评估模型的信息;该管理节点为该基于MapReduce的分布式***中的管理节点,该管理节点用于获取M个计算任务并根据该M个计算任务的任务大小建立该资源评估模型,该部分计算任务为该M个计算任务中的计算任务;该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;计算单元,用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型,计算该计算阶段所需要的计算资源的资源大小;处理单元,用于通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过运行上述单元,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
结合第三方面,在第三方面的第一种可能的实现方式中,该接收单元还用于接收该管理节点发送的为该部分计算任务中每个计算任务分配的初始计算资源的信息,并将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
结合第三方面,或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该处理单元具体用于:将该资源大小代入预设优先级算法计算该每个计算阶段的优先级并判断该计算阶段的优先级是否高于预设优先级阈值,该优先级用于体现该计算阶段的重要性;或者判断该资源大小是否不大于预设资源池中剩余的计算资源的数量;若是,则通过该资源池中该资源大小的计算资源计算该输入数据。
结合第三方面,或者第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,还包括:释放单元,用于在计算完该输入数据后向该资源池释放该资源大小的计算资源。
结合第三方面,或者第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,或者第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
结合第三方面,或者第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,或者第三方面的第三种可能的实现方式,或者第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,该计算任务包括映射map任务,或者归约reduce任务。
结合第三方面,或者第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,或者第三方面的第三种可能的实现方式,或者第三方面的第四种可能的实现方式,或者第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
第四方面,本发明实施例提供一种管理节点,该管理节点为基于映射/归约MapReduce的分布式***中的管理节点,该管理节点包括处理器、存储器和通信接口:该存储器用于存储数据和程序;该处理器调用该存储器中的程序用于执行如下操作:获取M个计算任务并根据该M个计算任务的数据大小建立资源评估模型;通过该通信接口将该M个计算任务中的部分计算任务和该资源评估模型的信息发送给目标计算节点,该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;该目标计算节点用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型以计算该计算阶段所需要的计算资源的资源大小;该目标计算节点还用于通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过执行上述步骤,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
结合第四方面,在第四方面的第一种可能的实现方式中,该处理器还用于:通过该通信接口向该计算节点发送为该部分计算任务中每个计算任务分配的初始计算资源的信息,以使该计算节点将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
结合第四方面,或者第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
结合第四方面,或者第四方面的第一种可能的实现方式,或者第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,该计算任务包括映射map任务,或者归约reduce任务。
结合第四方面,或者第四方面的第一种可能的实现方式,或者第四方面的第二种可能的实现方式,或者第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
第五方面,本发明实施例提供一种目标计算节点,该目标计算节点为基于映射/归约MapReduce的分布式***中的计算节点,该目标计算节点包括处理器、存储器和通信接口:该存储器用于存储数据和程序;该处理器调用该存储器中的程序用于执行如下操作:通过该通信接口接收该管理节点发送的部分计算任务和资源评估模型的信息;该管理节点用于获取M个计算任务并根据该M个计算任务的任务大小建立该资源评估模型,该部分计算任务为该M个计算任务中的计算任务;该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型,计算该计算阶段所需要的计算资源的资源大小;通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过执行上述步骤,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
结合第五方面,在第五方面的第一种可能的实现方式中,该处理器还用于:通过该通信接口接收该管理节点发送的为该部分计算任务中每个计算任务分配的初始计算资源的信息,并将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
结合第五方面,或者第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,该处理器通过预设资源池中该资源大小的计算资源计算该输入数据,具体为:将该资源大小代入预设优先级算法计算该每个计算阶段的优先级并判断该计算阶段的优先级是否高于预设优先级阈值,该优先级用于体现该计算阶段的重要性;或者判断该资源大小是否不大于预设资源池中剩余的计算资源的数量;若是,则通过该资源池中该资源大小的计算资源计算该输入数据。
结合第五方面,或者第五方面的第一种可能的实现方式,或者第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,该处理器还用于:在计算完该输入数据后向该资源池释放该资源大小的计算资源。
结合第五方面,或者第五方面的第一种可能的实现方式,或者第五方面的第二种可能的实现方式,或者第五方面的第三种可能的实现方式,在第五方面的第四种可能的实现方式中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
结合第五方面,或者第五方面的第一种可能的实现方式,或者第五方面的第二种可能的实现方式,或者第五方面的第三种可能的实现方式,或者第五方面的第四种可能的实现方式,在第五方面的第五种可能的实现方式中,该计算任务包括映射map任务,或者归约reduce任务。
结合第五方面,或者第五方面的第一种可能的实现方式,或者第五方面的第二种可能的实现方式,或者第五方面的第三种可能的实现方式,或者第五方面的第四种可能的实现方式,或者第五方面的第五种可能的实现方式,在第五方面的第六种可能的实现方式中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Crer*R/R_ref]表示对Cref*R/R_ref取整。
第六方面,本发明实施例提供一种资源分配方法,该方法应用于基于映射/归约MapReduce的分布式***,该***包括管理节点和目标计算节点,该方法包括:该管理节点获取M个计算任务并根据该M个计算任务的数据大小建立资源评估模型;该管理节点将该M个计算任务中的部分计算任务和该资源评估模型的信息发送给目标计算节点,该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;该目标计算节点用于根据所述资源评估模型的信息得到所述资源评估模型,在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型以计算该计算阶段所需要的计算资源的资源大小;该目标计算节点还用于通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过执行上述步骤,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
结合第六方面,在第六方面的第一种可能的实现方式中,该方法还包括:该管理节点向该计算节点发送为该部分计算任务中每个计算任务分配的初始计算资源的信息,以使该计算节点将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
结合第六方面,或者第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
结合第六方面,或者第六方面的第一种可能的实现方式,或者第六方面的第二种可能的实现方式,在第六方面的第三种可能的实现方式中,该计算任务包括映射map任务,或者归约reduce任务。
结合第六方面,或者第六方面的第一种可能的实现方式,或者第六方面的第二种可能的实现方式,或者第六方面的第三种可能的实现方式,在第六方面的第四种可能的实现方式中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
第七方面,本发明实施例提供一种资源分配方法,该方法应用于基于映射/归约MapReduce的分布式***,该***包括管理节点和目标计算节点,该方法包括:该目标计算节点接收该管理节点发送的部分计算任务和资源评估模型的信息;该管理节点用于获取M个计算任务并根据该M个计算任务的任务大小建立该资源评估模型,该部分计算任务为该M个计算任务中的计算任务;该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;该目标计算节点根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型,计算该计算阶段所需要的计算资源的资源大小;该目标计算节点通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过执行上述步骤,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
结合第七方面,在第七方面的第一种可能的实现方式中,该方法还包括:该计算节点接收该管理节点发送的为该部分计算任务中每个计算任务分配的初始计算资源的信息,并将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
结合第七方面,或者第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,该目标计算节点通过预设资源池中该资源大小的计算资源计算该输入数据,包括:将该资源大小代入预设优先级算法计算该每个计算阶段的优先级并判断该计算阶段的优先级是否高于预设优先级阈值,该优先级用于体现该计算阶段的重要性;或者判断该资源大小是否不大于预设资源池中剩余的计算资源的数量;若是,则通过该资源池中该资源大小的计算资源计算该输入数据。
结合第七方面,或者第七方面的第一种可能的实现方式,或者第七方面的第二种可能的实现方式,在第七方面的第三种可能的实现方式中,该方法还包括:该计算节点在计算完该输入数据后向该资源池释放该资源大小的计算资源。
结合第七方面,或者第七方面的第一种可能的实现方式,或者第七方面的第二种可能的实现方式,或者第七方面的第三种可能的实现方式,在第七方面的第四种可能的实现方式中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
结合第七方面,或者第七方面的第一种可能的实现方式,或者第七方面的第二种可能的实现方式,或者第七方面的第三种可能的实现方式,或者第七方面的第四种可能的实现方式,在第七方面的第五种可能的实现方式中,该计算任务包括映射map任务,或者归约reduce任务。
结合第七方面,或者第七方面的第一种可能的实现方式,或者第七方面的第二种可能的实现方式,或者第七方面的第三种可能的实现方式,或者第七方面的第四种可能的实现方式,或者第七方面的第五种可能的实现方式,在第七方面的第六种可能的实现方式中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
通过实施本发明实施例,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种MapReduce任务的计算流程示意图;
图2是本发明实施例提供的一种执行MapReduce任务的场景示意图;
图3是本发明实施例提供的一种分布式***的结构示意图;
图4是本发明实施例提供的一种计算资源分配方法的流程示意图;
图5是本发明实施例提供的一种分配计算资源的场景示意图;
图6是本发明实施例提供的一种管理节点的结构示意图;
图7是本发明实施例提供的一种目标计算节点的结构示意图;
图8是本发明实施例提供的又一种管理节点的结构示意图;
图9是本发明实施例提供的又一种目标计算节点的结构示意图。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行清楚地描述。
请参见图3,图3是本发明实施例提供的一种基于MapReduce的分布式***30的结构示意图,该***30包括管理节点301和计算节点302,在实际应用中可能存在多个管理节点301和多个计算节点302,本发明实施例以一个管理节点301为例来讲述如何基于该***30执行MapReduce中的Map任务和Reduce任务。需要说明的是,本发明实施例中的管理节点301和计算节点302可以为Spark架构中的两类节点,目前,Spark架构存在如下几种模式:Standalone模式、Spark On YARN模式和Spark On Mesos模式,无论哪种模式,均存在Driver进程和Executor进程,本发明实施例中的管理节点301用于运行Driver进程,计算节点301用于运行Executor进程。该管理节点301用于将分配给自身管理的某个作业(Job)分配给多个计算节点来具体执行。
请参见图4,图4是本发明实施例提供的一种计算资源分配方法的流程示意图,该方法可以基于上述***30来具体实现,该方法包括但不限于如下步骤。
步骤S401:该管理节点获取M个计算任务并根据该M个计算任务的数据大小建立资源评估模型。
具体地,该M个计算任务可以为Map任务或者Reduce任务,通常情况下,客户(Client)会向spark框架中的Master节点(例如,Spark On YARN模式中的RM)发送某个作业(Job)的处理请求,该请求同时还指示了该管理节点为该某个Job的主控节点。该Master节点会根据该处理请求将该某个Job包含的M个计算任务(task)指定给该管理节点管理,该计算任务即为上述reduce任务(reduce task)或者map任务(map task)。
相应地,该管理节点获取该M个计算任务的信息并根据该信息统计该M个计算任务的数据大小,该M个计算任务的数据大小可以为该M个计算任务的总的数据量大小;该M个计算任务的数据大小还可以为该M个计算任务包含的总的记录数,每个计算任务可以细分为多个记录;当本发明应用于基因(Gene)分析技术中时,该M个计算任务的数据大小可以该M个计算任务的覆盖深度,由于基因测序中有大片段拼接的间隔(gap)、测序读长有限、重复序列等问题,因此基因测序分析后组装得到的基因序列通常无法完全覆盖整个基因组,覆盖深度就是分析得到的基因序列占整个基因组的比例。例如,一个人的基因组测序覆盖深度为98.5%,那么说明该基因组还有1.5%的基因序列通过我们的组装和分析无法得到。
在本发明实施例中,该每个计算任务需要经过P个计算阶段计算,某个计算阶段的输入数据可能包含其他计算阶段的输出数据,该某个计算阶段的输出数据可能属于又一个计算阶段的输入,该P个计算阶段均执行完后的输出数据即为该计算任务的计算结果,M大于1,P大于1。例如,在基因(Gene)分析技术中,脱氧核糖核酸(英文:Deoxyribo NucleicAcid,简称:DNA)测序序列的回帖(mapping)操作属于上述Map任务,染色体区域的变异识别(Variant Calling)属于上述Reduce任务,该染色体区域的变异识别(Variant Calling)是现实过程包括重复标记阶段(需要调用MarkDuplicate工具)、局部对比和碱基矫正阶段(需要调用LocalRealigner工具和碱基质量分数校正(英文:Quality Score Recalibration,简称:BQSR)工具)和变异识别阶段(需要调用HaplotypeCaller工具)等(各个阶段调用的工具不同意味着各个阶段采用的算法的复杂度不同),此处的每个阶段即为本发明实施例中描述的计算阶段。
在同一计算任务中,不同计算阶段的所需要用到的算法的复杂度各不相同,所以不同计算阶段在计算时所需要的计算资源也很可能不同,因此本发明实施例中,该管理节点需要根据该M个计算任务的数据大小建立资源评估模型,该资源评估模型用于根据输入数据的大小计算该评估出计算该输入数据所需要的计算资源的资源大小,也即是说,向该资源评估模型输入数据大小的值可以输出该一个资源大小的值。举例来说,该资源评估模型包括如下公式:
Figure BDA0001125681780000151
在公式1-1,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入的计算任务的任务大小,Cnew为输出的该对应的计算资源的资源大小,[]为取整符号。该公式表达的含义是,当Cmax>Cref*R/R_ref>Cmin时,Cnew=Cref*R/R_ref;当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin,可选的,该计算资源的资源大小可以具体为CPU资源、内存资源、网络资源、GPU资源、FPGA资源等,当为CPU资源时该资源大小可以具体为CPU核数,例如,可以配置CPU核数分别为:Cmax=8,Cmin=1,Cref=4。
在一种可选的方案中,每个计算阶段使用的资源评估模型相同,在这种情况下该管理节点只需配置一个资源评估模型即可;在又一种可选的方案中,各个计算阶段使用的资源评估模型各不相同,在这种情况下该管理节点需要配置多个不同的资源评估模型,可选的,各个资源评估模型的原理均为公式1-1所示,只不过各个资源评估模型的Cmax、Cref、Cmin的初始值不同。
步骤S402:该管理节点将该M个计算任务中的部分计算任务和该资源评估模型的信息发送给目标计算节点。
具体地,该管理节点需要将这M个计算任务分配给该分布式***中的计算节点,假设该管理节点为其中某个计算节点分配了部分计算任务,该部分计算任务的数量大于等于2,为了方便描述可称该某个计算节点为目标计算节点。那么,该管理节点将该部分计算任务和上述资源评估模型的信息发送给该目标计算节点。在一种可选的方案中,该管理节点还为这部分计算任务中的每个计算任务分配初始计算资源,并向该计算节点发送为该部分计算任务中每个计算任务分配的初始计算资源的信息。
步骤S403:该目标计算节点接收该管理节点发送的该部分计算任务和该资源评估模型的信息。该目标计算节点会根据所述资源评估模型的信息得到所述资源评估模型。
需要说明的是,该目标计算节点中预先配置了资源池来维护了计算资源,通常情况下,该目标计算节点不管是注册了计算资源、占用了计算资源,还是占用后释放了计算资源都需要在该资源池中进行记录。例如,该资源池中初始的CPU核数C=0,注册的CPU核数Creg=1,那么注册成功后该资源池中的CPU核数为C=0+1=1。这样一来,该目标计算节点就可以获知自身当前可以使用的CPU资源有哪些。
当上述管理节点没有为部分计算任务中每个计算任务分配初始计算资源时,该目标计算节点可以预先给该资源池配置一些计算资源供后续使用。当上述管理节点为部分计算任务中每个计算任务分配了初始计算资源时,可以预先为该资源池配置一些计算资源也可以不配置计算资源,不管有没有预先配置,该目标节点接收到该管理节点发送的为部分计算任务中每个计算任务分配的初始计算资源的信息时,将为该每个计算任务分配的初始计算资源注册到预设资源池中供使用,也即是说,该目标计算节点将分配给这部分计算任务中每个计算任务的计算资源整合起来,后续进行重新分配。
步骤S404:该目标计算节点在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型以计算该计算阶段所需要的计算资源的资源大小。
具体地,该目标任务为该部分计算任务中的任意一个计算任务,也即是说,该部分计算任务中的任意一个计算任务均满足该目标任务的特点。以下举例来说明,假设目标任务包括的计算阶段为:计算阶段A(例如,重复标记阶段)和计算阶段B(例如,变异识别阶段),计算阶段A的输入数据的大小为150,计算阶段B的输入数据的大小为125,并且该计算阶段A的资源评估模型为:Cnew=[MIN(8,MAX(1,(4*R)/100))],那么,在执行目标任务的计算阶段A前,将R=150带入到资源评估模型,得到Cnew=[MIN(8,MAX(1,(4*150)/100))]=6;该计算阶段B的资源评估模型为:Cnew=[MIN(4,MAX(1,(4*R)/100))],那么,在执行目标任务的计算阶段B前,将R=125带入到资源评估模型,得到Cnew=[MIN(4,MAX(1,(4*125)/100))]=4;因此,计算阶段A所需要的计算资源的CPU核数为6,计算阶段B所需要的计算资源的CPU核数为4。
如图5所示,可以在该目标计算节点上配置动态计算资源调节器(英文:DynamicComputing Resource Scheduler,简称:DCRS),该DCRS可以为虚拟模块也可以为实体模块,该DCRS可以包括资源调节器模块(Resource Allocator)和负载评估模块(LoadEstimator),其中,该资源调节器模块用于管理所在计算节点的资源池中的计算资源,该负载评估模块用于在各个计算阶段执行前根据该计算阶段的输入数据大小评估该计算阶段所需的计算资源的大小。
步骤S405:该目标计算节点通过预设资源池中该资源大小的计算资源计算该输入数据。
具体地,当该目标计算节点获知目标任务的某个计算阶段所需的计算资源的资源大小后,从该资源池中占用相应资源大小的计算资源供该某个计算阶段使用。可选的,可以在该目标计算节点中配置资源占位符CPU_CORES,并在每个计算阶段运行前更新该资源占位符CPU_CORES的值,该值用于指示即将进行的计算阶段所需的计算资源的资源大小,该值等于以上实时通过资源评估模型计算出的计算资源的资源大小。按照步骤S404中的举例,该目标计算节点从该资源池中占用6个单位的计算资源供目标任务的计算阶段A使用,从该资源池中占用5个单位的计算资源供目标任务的计算阶段B使用,从该资源池中占用4个单位的计算资源供目标任务的计算阶段C使用。
在一种可选的方案中,该目标计算节点通过预设资源池中该资源大小的计算资源计算该输入数据,具体为:判断该资源大小是否不大于预设资源池中剩余的计算资源的数量;或者将该资源大小代入预设优先级算法计算该每个计算任务的优先级并判断该计算任务的优先级是否高于预设优先级阈值,该优先级用于体现该计算任务的重要性,可选的,该优先级等于计算出的该资源大小除以上述资源大小的平均值,即优先级Pnew=Cnew/Cref;若任意一项的结果为是,则通过该资源池中该资源大小的计算资源计算该输入数据。
在又一种可选的方案中,该计算节点在计算完该输入数据后向该资源池释放该资源大小的计算资源。举例来说,目标任务的计算阶段A在运行的过程中,该资源池中剩余的资源大小C=10,当目标任务的计算阶段A运行完后将该计算阶段A占用的计算资源Cnew=6释放到该资源池中,这样一来,该资源池中剩余的计算资源的资源大小C=10+6=16。
可选的,当该目标计算节点在前面将部分计算任务中每个计算任务的初始计算资源注册到了该资源池中时,如果该部分计算任务全部都执行完了,那么该目标计算节点可以将这部分计算任务中每个计算任务的初始计算资源从该资源池中释放掉。
在图4所描述的方法中,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
上述详细阐述了本发明实施例的方法,为了便于更好地实施本发明实施例的上述方案,相应地,下面提供了本发明实施例的装置。
请参见图6,图6是本发明实施例提供的一种管理节点60的结构示意图,该管理节点60为基于映射/归约MapReduce的分布式***中的管理节点,该管理节点60包括获取单元601和发送单元602,其中,各个单元的描述如下:
获取单元601用于获取M个计算任务并根据该M个计算任务的数据大小建立资源评估模型。
发送单元602用于将该M个计算任务中的部分计算任务和该资源评估模型的信息发送给目标计算节点,该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;该目标计算节点用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型以计算该计算阶段所需要的计算资源的资源大小;该目标计算节点还用于通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务,该目标计算节点为该基于MapReduce的分布式***中的计算节点。
通过运行上述单元,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
在一种可选的方案中,该发送单元602还用于向该计算节点发送为该部分计算任务中每个计算任务分配的初始计算资源的信息,以使该计算节点将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
在又一种可选的方案中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
在又一种可选的方案中,该计算任务包括映射map任务,或者归约reduce任务。
在又一种可选的方案中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
需要说明的是,各个单元的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图6所描述的管理节点60中,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
请参见图7,图7是本发明实施例提供的一种目标计算节点70的结构示意图,该目标计算节70点为基于映射/归约MapReduce的分布式***中的计算节点,该目标计算节点70包括接收单元701、计算单元702和处理单元703,各个单元的详细描述如下:
接收单元701用于接收该管理节点发送的部分计算任务和资源评估模型的信息;该管理节点为该基于MapReduce的分布式***中的管理节点,该管理节点用于获取M个计算任务并根据该M个计算任务的任务大小建立该资源评估模型,该部分计算任务为该M个计算任务中的计算任务;该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1。
计算单元702用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型,计算该计算阶段所需要的计算资源的资源大小。
处理单元703用于通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过运行上述单元,该目标计算节点70在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
在一种可选的方案中,该接收单元701还用于接收该管理节点发送的为该部分计算任务中每个计算任务分配的初始计算资源的信息,并将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
在又一种可选的方案中,该处理单元703具体用于:将该资源大小代入预设优先级算法计算该每个计算阶段的优先级并判断该计算阶段的优先级是否高于预设优先级阈值,该优先级用于体现该计算阶段的重要性;或者判断该资源大小是否不大于预设资源池中剩余的计算资源的数量;若是,则通过该资源池中该资源大小的计算资源计算该输入数据。
在又一种可选的方案中,该目标计算节点70还包括:释放单元,用于在计算完该输入数据后向该资源池释放该资源大小的计算资源。
在又一种可选的方案中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
在又一种可选的方案中,该计算任务包括映射map任务,或者归约reduce任务。
在又一种可选的方案中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
需要说明的是,各个单元的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图7所描述的目标计算节点70中,该目标计算节点70在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
请参见图8,图8是本发明实施例提供的一种管理节点80,该管理节点80为基于映射/归约MapReduce的分布式***该中的管理节点,管理节点80包括处理器801、存储器802和通信接口803,该处理器801、存储器802和通信接口803通过总线相互连接。
存储器802包括但不限于是随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、或便携式只读存储器(CD-ROM),该存储器802用于相关指令及数据。
处理器801可以是一个或多个中央处理器(英文:Central Processing Unit,简称:CPU),在处理器801是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该管理节点80中的处理器801用于读取该存储器802中存储的程序代码,执行以下操作:
获取M个计算任务并根据该M个计算任务的数据大小建立资源评估模型;
通过该通信接口803将该M个计算任务中的部分计算任务和该资源评估模型的信息发送给目标计算节点,该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;该目标计算节点用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型以计算该计算阶段所需要的计算资源的资源大小;该目标计算节点还用于通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过执行上述操作,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
在一种可选的方案中,该处理器还用于通过该通信接口803向该计算节点发送为该部分计算任务中每个计算任务分配的初始计算资源的信息,以使该计算节点将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
在又一种可选的方案中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
在又一种可选的方案中,该计算任务包括映射map任务,或者归约reduce任务。
在又一种可选的方案中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
需要说明的是,上述操作的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图8所描述的管理节点80中,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
请参见图9,图9是本发明实施例提供的一种目标计算节点90,该目标计算节点90为基于映射/归约MapReduce的分布式***该中的计算节点,目标计算节点90包括处理器901、存储器902和通信接口903,该处理器901、存储器902和通信接口903通过总线相互连接。
存储器902包括但不限于是随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、或便携式只读存储器(CD-ROM),该存储器902用于相关指令及数据。
处理器901可以是一个或多个中央处理器(英文:Central Processing Unit,简称:CPU),在处理器901是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该目标计算节点90中的处理器901用于读取该存储器902中存储的程序代码,执行以下操作:
通过该通信接口903接收该管理节点发送的部分计算任务和资源评估模型的信息;该管理节点用于获取M个计算任务并根据该M个计算任务的任务大小建立该资源评估模型,该部分计算任务为该M个计算任务中的计算任务;该部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1。
根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将该计算阶段的输入数据代入到该资源评估模型,计算该计算阶段所需要的计算资源的资源大小。
通过预设资源池中该资源大小的计算资源计算该输入数据,该目标任务为该部分计算任务中的任意一个计算任务。
通过执行上述操作,该目标计算节点90在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
在一种可选的方案中,该处理器还用于:通过所述通信接口903接收该管理节点发送的为该部分计算任务中每个计算任务分配的初始计算资源的信息,并将为该每个计算任务分配的初始计算资源注册到该资源池中供使用。
在又一种可选的方案中,该处理器901通过预设资源池中该资源大小的计算资源计算该输入数据,具体为:
将该资源大小代入预设优先级算法计算该每个计算阶段的优先级并判断该计算阶段的优先级是否高于预设优先级阈值,该优先级用于体现该计算阶段的重要性;或者判断该资源大小是否不大于预设资源池中剩余的计算资源的数量;若是,则通过该资源池中该资源大小的计算资源计算该输入数据。
在又一种可选的方案中,该处理器903还用于:在计算完该输入数据后向该资源池释放该资源大小的计算资源。
在又一种可选的方案中,该任务大小包括数据量大小、覆盖深度和记录数中至少一项。
在又一种可选的方案中,该计算任务包括映射map任务,或者归约reduce任务。
在又一种可选的方案中,该资源评估模型用于根据输入数据的大小评估出计算该输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的该计算资源的资源大小,Cmax为预先配置的该资源大小可取的上限值,Cmin为预先配置的该资源大小可取的下限值,Cref为预先配置的该资源大小的平均值,Rref等于该M个计算任务的任务大小除以M得到的任务大小平均值,R为该输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
需要说明的是,各个操作的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图9所描述的目标计算节点90中,该目标计算节点90在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
综上所述,通过实施本发明实施例,该目标计算节点在每个计算任务的每个计算阶段根据该每个计算阶段输入数据的大小计算该计算阶段所需要的计算资源,然后根据计算结果为该计算阶段分配相应地计算资源来用于该计算阶段的计算,也即是说,每个计算任务的每个计算阶段被分配的计算资源都在根据实际需要实时调整,提高了计算资源的利用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅揭露了本发明中较佳实施例,不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (31)

1.一种基于映射/归约MapReduce的分布式***,其特征在于,所述***包括管理节点和多个目标计算节点,其中:
所述管理节点用于获取M个计算任务并根据所述M个计算任务的数据大小建立资源评估模型;将所述M个计算任务中的部分计算任务和所述资源评估模型的信息发送给目标计算节点,所述部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;
所述目标计算节点用于接收所述管理节点发送的所述部分计算任务和所述资源评估模型的信息;根据所述资源评估模型的信息得到所述资源评估模型,在执行目标任务的每个计算阶段前将所述计算阶段的输入数据代入到所述资源评估模型以计算所述计算阶段所需要的计算资源的资源大小;通过预设资源池中所述资源大小的计算资源计算所述输入数据,所述目标任务为所述部分计算任务中的任意一个计算任务,各个计算阶段使用的所述资源评估模型各不相同。
2.根据权利要求1所述的***,其特征在于:
所述管理节点还用于向所述目标计算节点发送为所述部分计算任务中每个计算任务分配的初始计算资源的信息;
所述目标计算节点还用于接收为所述每个计算任务分配的初始计算资源的信息,并将为所述每个计算任务分配的初始计算资源注册到所述资源池中供使用。
3.根据权利要求1或2所述的***,其特征在于,所述目标计算节点通过预设资源池中所述资源大小的计算资源计算所述输入数据,具体为:
将所述资源大小代入预设优先级算法计算所述每个计算阶段的优先级并判断所述计算阶段的优先级是否高于预设优先级阈值,所述优先级用于体现所述计算阶段的重要性;或者判断所述资源大小是否不大于预设资源池中剩余的计算资源的数量;
若是,则通过所述资源池中所述资源大小的计算资源计算所述输入数据。
4.根据权利要求1或2所述的***,其特征在于,所述目标计算节点还用于在计算完所述输入数据后向所述资源池释放所述资源大小的计算资源。
5.根据权利要求1或2所述的***,其特征在于,所述资源大小包括数据量大小、覆盖深度和记录数中至少一项。
6.根据权利要求1或2所述的***,其特征在于,所述计算任务包括映射map任务,或者归约reduce任务。
7.根据权利要求1或2所述的***,其特征在于,所述资源评估模型用于根据输入数据的大小评估出计算所述输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的所述计算资源的资源大小,Cmax为预先配置的所述资源大小可取的上限值,Cmin为预先配置的所述资源大小可取的下限值,Cref为预先配置的所述资源大小的平均值,R_ref等于所述M个计算任务的任务大小除以M得到的任务大小平均值,R为所述输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
8.一种管理节点,其特征在于,所述管理节点为基于映射/归约MapReduce的分布式***中的管理节点,所述分布式***还包括多个目标计算节点,所述管理节点包括:
获取单元,用于获取M个计算任务并根据所述M个计算任务的数据大小建立资源评估模型;
发送单元,用于将所述M个计算任务中的部分计算任务和所述资源评估模型的信息发送给目标计算节点,所述部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;所述目标计算节点用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将所述计算阶段的输入数据代入到所述资源评估模型以计算所述计算阶段所需要的计算资源的资源大小;所述目标计算节点还用于通过预设资源池中所述资源大小的计算资源计算所述输入数据,所述目标任务为所述部分计算任务中的任意一个计算任务,所述目标计算节点为所述基于MapReduce的分布式***中的计算节点,各个计算阶段使用的所述资源评估模型各不相同。
9.根据权利要求8所述的管理节点,其特征在于,所述发送单元还用于向所述目标计算节点发送为所述部分计算任务中每个计算任务分配的初始计算资源的信息,以使所述目标计算节点将为所述每个计算任务分配的初始计算资源注册到所述资源池中供使用。
10.根据权利要求8或9所述的管理节点,其特征在于,所述资源大小包括数据量大小、覆盖深度和记录数中至少一项。
11.根据权利要求8或9所述的管理节点,其特征在于,所述计算任务包括映射map任务,或者归约reduce任务。
12.根据权利要求8或9所述的管理节点,其特征在于,所述资源评估模型用于根据输入数据的大小评估出计算所述输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的所述计算资源的资源大小,Cmax为预先配置的所述资源大小可取的上限值,Cmin为预先配置的所述资源大小可取的下限值,Cref为预先配置的所述资源大小的平均值,R_ref等于所述M个计算任务的任务大小除以M得到的任务大小平均值,R为所述输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
13.一种目标计算节点,其特征在于,所述目标计算节点为基于映射/归约MapReduce的分布式***中的计算节点,所述分布式***包括管理节点和多个目标计算节点,所述目标计算节点包括:
接收单元,用于接收所述管理节点发送的部分计算任务和资源评估模型的信息;所述管理节点为所述基于MapReduce的分布式***中的管理节点,所述管理节点用于获取M个计算任务并根据所述M个计算任务的任务大小建立所述资源评估模型,所述部分计算任务为所述M个计算任务中的计算任务;所述部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;
计算单元,用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将所述计算阶段的输入数据代入到所述资源评估模型,计算所述计算阶段所需要的计算资源的资源大小;
处理单元,用于通过预设资源池中所述资源大小的计算资源计算所述输入数据,所述目标任务为所述部分计算任务中的任意一个计算任务,各个计算阶段使用的所述资源评估模型各不相同。
14.根据权利要求13所述的目标计算节点,其特征在于,所述接收单元还用于接收所述管理节点发送的为所述部分计算任务中每个计算任务分配的初始计算资源的信息,并将为所述每个计算任务分配的初始计算资源注册到所述资源池中供使用。
15.根据权利要求13或14所述的目标计算节点,其特征在于,所述处理单元具体用于:
将所述资源大小代入预设优先级算法计算所述每个计算阶段的优先级并判断所述计算阶段的优先级是否高于预设优先级阈值,所述优先级用于体现所述计算阶段的重要性;或者判断所述资源大小是否不大于预设资源池中剩余的计算资源的数量;
若是,则通过所述资源池中所述资源大小的计算资源计算所述输入数据。
16.根据权利要求13或14所述的目标计算节点,其特征在于,还包括:
释放单元,用于在计算完所述输入数据后向所述资源池释放所述资源大小的计算资源。
17.根据权利要求13或14所述的目标计算节点,其特征在于,所述任务大小包括数据量大小、覆盖深度和记录数中至少一项。
18.根据权利要求13或14所述的目标计算节点,其特征在于,所述计算任务包括映射map任务,或者归约reduce任务。
19.根据权利要求13或14所述的目标计算节点,其特征在于,所述资源评估模型用于根据输入数据的大小评估出计算所述输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的所述计算资源的资源大小,Cmax为预先配置的所述资源大小可取的上限值,Cmin为预先配置的所述资源大小可取的下限值,Cref为预先配置的所述资源大小的平均值,R_ref等于所述M个计算任务的任务大小除以M得到的任务大小平均值,R为所述输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
20.一种资源分配方法,其特征在于,所述方法应用于基于映射/归约MapReduce的分布式***,所述***包括管理节点和多个目标计算节点,所述方法包括:
所述管理节点获取M个计算任务并根据所述M个计算任务的数据大小建立资源评估模型;
所述管理节点将所述M个计算任务中的部分计算任务和所述资源评估模型的信息发送给目标计算节点,所述部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;所述目标计算节点用于根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将所述计算阶段的输入数据代入到所述资源评估模型以计算所述计算阶段所需要的计算资源的资源大小;所述目标计算节点还用于通过预设资源池中所述资源大小的计算资源计算所述输入数据,所述目标任务为所述部分计算任务中的任意一个计算任务,各个计算阶段使用的所述资源评估模型各不相同。
21.根据权利要求20所述的方法,其特征在于,所述方法还包括:
所述管理节点向所述目标计算节点发送为所述部分计算任务中每个计算任务分配的初始计算资源的信息,以使所述目标计算节点将为所述每个计算任务分配的初始计算资源注册到所述资源池中供使用。
22.根据权利要求20或21所述的方法,其特征在于,所述资源大小包括数据量大小、覆盖深度和记录数中至少一项。
23.根据权利要求20或21所述的方法,其特征在于,所述计算任务包括映射map任务,或者归约reduce任务。
24.根据权利要求20或21所述的方法,其特征在于,所述资源评估模型用于根据输入数据的大小评估出计算所述输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的所述计算资源的资源大小,Cmax为预先配置的所述资源大小可取的上限值,Cmin为预先配置的所述资源大小可取的下限值,Cref为预先配置的所述资源大小的平均值,R_ref等于所述M个计算任务的任务大小除以M得到的任务大小平均值,R为所述输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
25.一种资源分配方法,其特征在于,所述方法应用于基于映射/归约MapReduce的分布式***,所述***包括管理节点和多个目标计算节点,所述方法包括:
所述目标计算节点接收所述管理节点发送的部分计算任务和资源评估模型的信息;
所述目标计算节点根据所述资源评估模型的信息得到所述资源评估模型,并在执行目标任务的每个计算阶段前将所述计算阶段的输入数据代入到所述资源评估模型,计算所述计算阶段所需要的计算资源的资源大小;
所述目标计算节点通过预设资源池中所述资源大小的计算资源计算所述输入数据,所述目标任务为所述部分计算任务中的任意一个计算任务,各个计算阶段使用的所述资源评估模型各不相同。
26.根据权利要求25所述的方法,其特征在于,所述方法还包括:
所述目标计算节点接收所述管理节点发送的为所述部分计算任务中每个计算任务分配的初始计算资源的信息,并将为所述每个计算任务分配的初始计算资源注册到所述资源池中供使用。
27.根据权利要求25或26所述的方法,其特征在于,所述目标计算节点通过预设资源池中所述资源大小的计算资源计算所述输入数据,包括:
将所述资源大小代入预设优先级算法计算所述每个计算阶段的优先级并判断所述计算阶段的优先级是否高于预设优先级阈值,所述优先级用于体现所述计算阶段的重要性;或者判断所述资源大小是否不大于预设资源池中剩余的计算资源的数量;
若是,则通过所述资源池中所述资源大小的计算资源计算所述输入数据。
28.根据权利要求25或26所述的方法,其特征在于,所述方法还包括:
所述目标计算节点在计算完所述输入数据后向所述资源池释放所述资源大小的计算资源。
29.根据权利要求25或26所述的方法,其特征在于,所述资源大小包括数据量大小、覆盖深度和记录数中至少一项。
30.根据权利要求25或26所述的方法,其特征在于,所述计算任务包括映射map任务,或者归约reduce任务。
31.根据权利要求25或26所述的方法,其特征在于,所述管理节点用于获取M个计算任务并根据所述M个计算任务的任务大小建立所述资源评估模型,所述部分计算任务为所述M个计算任务中的计算任务;所述部分计算任务中的每个计算任务需要经过P个计算阶段计算,M大于1,P大于1;所述资源评估模型用于根据输入数据的大小评估出计算所述输入数据所需计算资源的资源大小,当Cmax>Cref*R/R_ref>Cmin时,Cnew=[Cref*R/R_ref];当Cref*R/R_ref≥Cmax时,Cnew=Cmax;当Cref*R/R_ref≤Cmin时,Cnew=Cmin;Cnew为评估出的所述计算资源的资源大小,Cmax为预先配置的所述资源大小可取的上限值,Cmin为预先配置的所述资源大小可取的下限值,Cref为预先配置的所述资源大小的平均值,R_ref等于所述M个计算任务的任务大小除以M得到的任务大小平均值,R为所述输入数据的大小,[Cref*R/R_ref]表示对Cref*R/R_ref取整。
CN201610878801.7A 2016-09-30 2016-09-30 一种资源分配方法、相关设备及*** Active CN107885595B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610878801.7A CN107885595B (zh) 2016-09-30 2016-09-30 一种资源分配方法、相关设备及***
PCT/CN2017/090038 WO2018059029A1 (zh) 2016-09-30 2017-06-26 一种资源分配方法、相关设备及***
EP17854483.9A EP3518107B1 (en) 2016-09-30 2017-06-26 Resource allocation method, related device and system
US16/369,564 US11003507B2 (en) 2016-09-30 2019-03-29 Mapreduce job resource sizing using assessment models

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610878801.7A CN107885595B (zh) 2016-09-30 2016-09-30 一种资源分配方法、相关设备及***

Publications (2)

Publication Number Publication Date
CN107885595A CN107885595A (zh) 2018-04-06
CN107885595B true CN107885595B (zh) 2021-12-14

Family

ID=61763702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610878801.7A Active CN107885595B (zh) 2016-09-30 2016-09-30 一种资源分配方法、相关设备及***

Country Status (4)

Country Link
US (1) US11003507B2 (zh)
EP (1) EP3518107B1 (zh)
CN (1) CN107885595B (zh)
WO (1) WO2018059029A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108845874B (zh) * 2018-06-25 2023-03-21 腾讯科技(深圳)有限公司 资源的动态分配方法及服务器
CN109471727B (zh) * 2018-10-29 2021-01-22 北京金山云网络技术有限公司 一种任务处理方法、装置及***
CN111143232B (zh) * 2018-11-02 2023-08-18 伊姆西Ip控股有限责任公司 用于存储元数据的方法、设备和计算机可读介质
CN110795217B (zh) 2019-09-27 2022-07-15 广东浪潮大数据研究有限公司 一种基于资源管理平台的任务分配方法及***
CN112860387A (zh) * 2019-11-27 2021-05-28 上海哔哩哔哩科技有限公司 分布式任务调度方法、装置、计算机设备及存储介质
CN113051064B (zh) * 2019-12-26 2024-05-24 中移(上海)信息通信科技有限公司 任务调度方法、装置、设备及存储介质
CN111427675B (zh) * 2020-03-20 2023-03-14 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及计算机可读存储介质
CN112101891B (zh) * 2020-07-30 2021-05-04 杭州正策信息科技有限公司 一种应用于项目申报***中的数据处理方法
CN112073498B (zh) * 2020-09-01 2022-09-09 北京字节跳动网络技术有限公司 一种资源分配方法及装置
US20220171657A1 (en) * 2020-12-01 2022-06-02 International Business Machines Corporation Dynamic workload tuning
CN112953767B (zh) * 2021-02-05 2022-11-04 深圳前海微众银行股份有限公司 基于Hadoop平台的资源分配参数设置方法、设备及存储介质
CN113468099B (zh) * 2021-05-31 2022-02-08 深圳致星科技有限公司 可重构计算装置、处理器及方法
CN114550833B (zh) * 2022-02-15 2022-10-28 郑州大学 一种基于大数据的基因分析方法及***
CN114598927B (zh) * 2022-03-03 2024-06-18 京东科技信息技术有限公司 转码资源的调度方法、***以及调度装置
CN117851075B (zh) * 2024-03-08 2024-05-14 深圳市秋葵互娱科技有限公司 一种数据监测***的资源优化管理方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046372A (ja) * 2002-07-09 2004-02-12 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、リソース割当方法およびプログラムならびにリソース割当プログラムが記録された記録媒体
EP1630671A1 (en) * 2004-08-24 2006-03-01 International Business Machines Corporation Framework for pluggable schedulers
US8209703B2 (en) * 2006-12-08 2012-06-26 SAP France S.A. Apparatus and method for dataflow execution in a distributed environment using directed acyclic graph and prioritization of sub-dataflow tasks
CN101938416B (zh) 2010-09-01 2012-08-08 华南理工大学 一种基于动态重配置虚拟资源的云计算资源调度方法
US8661120B2 (en) * 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US8799916B2 (en) * 2011-02-02 2014-08-05 Hewlett-Packard Development Company, L. P. Determining an allocation of resources for a job
US9201690B2 (en) * 2011-10-21 2015-12-01 International Business Machines Corporation Resource aware scheduling in a distributed computing environment
CN102629219B (zh) * 2012-02-27 2015-09-23 北京大学 并行计算框架中的Reduce端自适应负载均衡方法
US20130268941A1 (en) * 2012-04-09 2013-10-10 Ludmila Cherkasova Determining an allocation of resources to assign to jobs of a program
US9875142B2 (en) * 2013-03-22 2018-01-23 Palo Alto Research Center Incorporated System and method for efficient task scheduling in heterogeneous, distributed compute infrastructures via pervasive diagnosis
CN103701886A (zh) * 2013-12-19 2014-04-02 中国信息安全测评中心 一种云计算环境下的服务及资源分层调度方法
CN104778079B (zh) * 2014-01-10 2018-07-20 国际商业机器公司 用于调度、执行的装置和方法以及分布式***
US9489225B2 (en) * 2014-01-15 2016-11-08 Cisco Technology, Inc. Allocating resources for multi-phase, distributed computing jobs
US9886310B2 (en) * 2014-02-10 2018-02-06 International Business Machines Corporation Dynamic resource allocation in MapReduce
US20150277980A1 (en) * 2014-03-28 2015-10-01 Linkedln Corporation Using predictive optimization to facilitate distributed computation in a multi-tenant system
CN104978228B (zh) * 2014-04-09 2019-08-30 腾讯科技(深圳)有限公司 一种分布式计算***的调度方法和装置
TWI510931B (zh) * 2014-08-27 2015-12-01 Inst Information Industry 用於一叢集運算系統之主裝置、從屬裝置及其運算方法
CN104407921A (zh) 2014-12-25 2015-03-11 浪潮电子信息产业股份有限公司 一种基于时间的yarn任务资源动态调度方法
US10120904B2 (en) * 2014-12-31 2018-11-06 Cloudera, Inc. Resource management in a distributed computing environment
US10033570B2 (en) * 2015-01-15 2018-07-24 International Business Machines Corporation Distributed map reduce network
CN104731595A (zh) 2015-03-26 2015-06-24 江苏物联网研究发展中心 面向大数据分析的混合计算***
CN104834561B (zh) * 2015-04-29 2018-01-19 华为技术有限公司 一种数据处理方法及装置
CN104915407B (zh) * 2015-06-03 2018-06-12 华中科技大学 一种基于Hadoop多作业环境下的资源调度方法
CN104951372B (zh) * 2015-06-16 2018-07-31 北京工业大学 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法
US9672064B2 (en) * 2015-07-13 2017-06-06 Palo Alto Research Center Incorporated Dynamically adaptive, resource aware system and method for scheduling
CN105022670B (zh) 2015-07-17 2018-03-13 中国海洋大学 一种云计算平台中的异构分布式任务处理***及其处理方法
US10073880B2 (en) * 2015-08-06 2018-09-11 International Business Machines Corporation Vertical tuning of distributed analytics clusters
US10031774B2 (en) * 2015-10-15 2018-07-24 Red Hat, Inc. Scheduling multi-phase computing jobs
TWI547817B (zh) * 2015-11-09 2016-09-01 緯創資通股份有限公司 叢集運算架構的資源規劃方法、系統及裝置
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
US10346206B2 (en) * 2016-08-27 2019-07-09 International Business Machines Corporation System, method and computer program product for resource management in a distributed computation system

Also Published As

Publication number Publication date
EP3518107B1 (en) 2022-04-27
US20190227853A1 (en) 2019-07-25
EP3518107A4 (en) 2019-09-11
US11003507B2 (en) 2021-05-11
CN107885595A (zh) 2018-04-06
EP3518107A1 (en) 2019-07-31
WO2018059029A1 (zh) 2018-04-05

Similar Documents

Publication Publication Date Title
CN107885595B (zh) 一种资源分配方法、相关设备及***
CN107045456B (zh) 一种资源分配方法及资源管理器
CN105718479B (zh) 跨idc大数据处理架构下执行策略生成方法、装置
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
US9940162B2 (en) Realtime optimization of compute infrastructure in a virtualized environment
CN111104222A (zh) 任务处理方法、装置、计算机设备和存储介质
EP2894827B1 (en) Method, apparatus, and system for managing migration of virtual machine
CN107301093B (zh) 一种管理资源的方法和装置
JP2015011716A (ja) グリッドコンピューティングシステムの遊休リソースによるタスク実行
CN111258745B (zh) 一种任务处理方法及设备
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
CN109189572B (zh) 一种资源预估方法及***、电子设备和存储介质
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN111813523A (zh) 时长预估模型生成方法、***资源调度方法、装置、电子设备和存储介质
WO2015042904A1 (zh) 一种多核***中资源池的调度方法、装置和***
CN113010309B (zh) 集群资源调度方法、装置、存储介质、设备和程序产品
KR101702218B1 (ko) 역경매 방식 자원할당 장치를 포함하는 하이브리드 클라우드 서버 및 그 자원 할당 방법 및 시스템
JP2019008454A (ja) 情報処理システムおよびリソース割り当て方法
CN110502343B (zh) 一种资源分配方法、***、装置及计算机可读存储介质
JP4121525B2 (ja) リソース利用率を制御する方法およびコンピュータシステム
CN116962532A (zh) 集群任务调度方法、装置、计算机设备及存储介质
CN108228323B (zh) 基于数据本地性的Hadoop任务调度方法及装置
CN115129481A (zh) 一种计算资源分配方法、装置及电子设备
CN109062702B (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