CN106371924A - 一种最小化MapReduce集群能耗的任务调度方法 - Google Patents

一种最小化MapReduce集群能耗的任务调度方法 Download PDF

Info

Publication number
CN106371924A
CN106371924A CN201610785554.6A CN201610785554A CN106371924A CN 106371924 A CN106371924 A CN 106371924A CN 201610785554 A CN201610785554 A CN 201610785554A CN 106371924 A CN106371924 A CN 106371924A
Authority
CN
China
Prior art keywords
task
row
work nest
server
localization
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
CN201610785554.6A
Other languages
English (en)
Other versions
CN106371924B (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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN201610785554.6A priority Critical patent/CN106371924B/zh
Publication of CN106371924A publication Critical patent/CN106371924A/zh
Application granted granted Critical
Publication of CN106371924B publication Critical patent/CN106371924B/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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开了一种最小化MapReduce集群能耗的任务调度方法,包括预处理阶段:在每个服务器上构建模糊逻辑控制***,以便动态的更新服务器上的工作槽数量;解决方案阶段:根据截止期和数据本地化的约束,对作业和任务进行排序,使得较多的作业可以在截止期内完成,并使得集群总运行时间降低;更新阶段:在每个心跳期,根据任务的执行情况更新任务排序,并根据服务器的资源利用率和模糊逻辑控制***,实时更新集群环境。本发明通过减少集群总运行时间,降低能耗。在绿色计算领域有广泛的应用价值和使用前景。

Description

一种最小化MapReduce集群能耗的任务调度方法
技术领域
本发明涉及到一种最小化MapReduce集群能耗的任务调度方法,属于云计算应用、计算机技术、绿色计算领域。
背景技术
近年来,不同形式的数据在社会、经济、网络等各个领域呈指数型增长。各企业尤其是IT企业每年都会产生庞大的数据量,据IDC(International Data Corporation)报告[1]称,在2020一年中将会有将近40ZB的数据被处理,其中机器生成的数据量从2005年的10%涨至2020年的40%。因此,数据中心的能量消耗将非常可观。据文献[2]称,全世界数据中心的能量消耗总和呈每年15%的比率增长。在大数据中进行数据挖掘,需要大量BDAApps(Big Data Analytics Applications)对数据进行处理,这些应用提交给数据中心计算集群的作业往往拥有不同的时间参数如开始时间,执行时间,截止期等。如何对其进行合理调度执行将直接影响数据中心的能量消耗。因此,任务调度在节约能量方面起到至关重要的作用。
为了加快大规模数据集下的运算速度,云计算领域中出现了一种编程模型MapReduce[3]并迅速被广泛运用。该模型采用简单的两步映射和化简来实现数据运算之间的高度并行化,针对上文提出的问题,在此模型中可以把BDA Apps所要计算的数据进行划分,用并行任务进行求解。本发明提出的任务调度方法主要应用于云计算环境下MapReduce计算集群。
基于MapReduce的任务调度,许多研究者已提出不同的方法,但这些方法在控制能量消耗方面均存在不同程度的缺陷。Lang等人[4]提出CS(Covered Set)方法,考虑数据本地化约束,在***利用率降低时,构建覆盖集将有用数据所在的服务器覆盖,将处于覆盖集之外的服务器关闭,从而降低集群能耗。Leverich等人[5]提出AIS(All-InStrategy),只有在所有提交的作业全部完成时才关闭集群中所有服务器。当其中一台服务器的运行时间远远大于其它服务器的运行时间时,无疑增加了集群的能量浪费。针对MapReduce上作业的三个性能因素:数据本地化,资源利用率和作业截止期,现有的大部分方法只考虑了其中的一种或两种,但实际中三者都应被考虑。
[1]Data to grow more quickly says idc’s digital universestudy.http://www.computerweekly.com/news/2240174381/Data-to-grow-more-quickly-says-IDCs-Digital-Universe-study.
[2]Koomey Jonathan G.Worldwide electricity used in datacenters.Environmental Research Letters,3,2008.
[3]J.Dean and S.Ghemawat,“Mapreduce:Simplified data processingonlarge clusters,”in Proc.of the 6th USENIX Symposium onOperating System Designand Implementation,2004,pp.137–150.
[4]Willis Lang and Jignesh M Patel.Energy management formapreduceclusters.Proceedings of the VLDB Endowment,3(1-2):129–139,2010.
[5]Jacob Leverich and Christos Kozyrakis.On the energy(in)efficiencyofhadoop clusters.ACM SIGOPS Operating Systems Review,44(1):61–65,2010.
发明内容
发明目的:为了克服现有技术中存在的不足,本发明主要从节能的角度来考虑云计算中的任务调度问题,体现绿色计算的理念提供一种最小化MapReduce集群能耗的任务调度方法,该方法综合考虑数据本地化,资源利用率和作业截止期约束,最小化服务器集群能耗。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种最小化MapReduce集群能耗的任务调度方法,包括以下阶段:
A.预处理阶段:根据收集到的资源利用率,所述资源利用率包括CPU利用率、内存利用率和网络带宽利用率,分别获取CPU利用率、内存利用率和网络带宽利用率的频率分布情况,根据CPU利用率、内存利用率和网络带宽利用率的频率分布情况分别确定出CPU利用率、内存利用率和网络带宽利用率的隶属函数。依据相应专家给出的模糊规则和得到的隶属函数构造每个服务器上的模糊控制***,在任务调度过程中,利用构建在服务器上的模糊逻辑控制***,动态改变服务器的工作槽数量,优化任务调度顺序,从而动态的决定服务器上的工作槽数量。
B.解决方案阶段:首先根据每个作业的正在运行任务数、等待处理的任务数和已经完成的任务数进行作业所需最少工作槽数量的计算,依据最少工作槽数建立作业的优先级队列。然后根据作业的优先级队列,依次取出优先级队列中的作业,交替选择该作业的执行时间长的任务和执行时间短的任务进行排队建立任务队列,直到任务队列的长度和集群上的全部空闲工作槽数量相等。建立任务工作槽关联列表,优先选择数据本地化代价最小的空闲工作槽分配给任务并执行。
C.更新阶段:在每个心跳期,根据任务的当前执行情况实时更新任务排序。在服务器配置了模糊控制***的前提下,根据每个服务器当前的CPU利用率、内存利用率和网络带宽利用率动态决定是否要改变该服务器上的工作槽数量。通过改变工作槽的数量,来提高服务器的利用率,尽早的完成全部作业,减少整个集群的能耗。
所述预处理阶段具体步骤如下:
A1.记录服务器的CPU利用率、内存利用率和网络带宽利用率的实时数据,形成数据集。
A2.对步骤A1中的数据集通过采样分析得到CPU利用率、内存利用率和网络带宽利用率的频率分布图,由频率分布图和数学模型确定各个服务器CPU利用率、内存利用率和网络带宽利用率的隶属函数。
A3.利用经验和专家知识构建模糊规则。
A4.根据确定的CPU利用率、内存利用率和网络带宽利用率的隶属函数和构建的模糊规则构造每个服务器上的模糊逻辑控制***,在任务调度过程中根据模糊逻辑控制***实时更新服务器环境状态,动态改变服务器上的工作槽数量。
所述解决方案阶段中包括以下步骤:
B1.根据每个作业的正在运行任务数、等待处理的任务数和已经完成的任务数进行作业所需最少工作槽数量的计算,并按照所需最少工作槽数从大到小对作业进行排序得到作业的优先级队列。
B2.在每个心跳期,按序从作业优先级队列中获取作业,交替选择作业中的具有长执行时间的任务和短执行时间的任务,依次加入到任务队列,直到任务队列的长度和集群上的全部空闲工作槽数量相等为止。
B3.每一个任务都有一个本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表,它们分别代表着节点层次的数据本地化、机架层次的数据本地化和远程的数据本地化,通过一个数据本地化代价的矩阵,确定分配给各任务的工作槽,得到一个关联列表,并执行任务。其中数据本地化表示任务所分配到的节点要接近于它所需处理的输入数据所在的节点。数据本地化程度由高到低可分为三个级别,分别为节点级别,机架级别,远程级别。
所述更新阶段包括以下步骤:
C1.对当前所有未完成的作业,依据B1中所示公式计算其相应的所需最少工作槽数,并按照所需最少工作槽数从大到小对作业进行排序。
C2.将服务器的当前CPU利用率,内存利用率和网络带宽利用率作为模糊控制***的输入值,依据隶属函数和所满足的模糊规则得到其对应的输出值,即当前服务器的工作槽数是否需要发生变化。
作业所需分配的工作槽数的计算公式如下:
ξ i A = Σ j = 1 | A i r | ( p i j - p i j e ) + ( | A i w | × Σ k = 1 | A i c | p i k | A i c | ) D i - t - K - | A i r |
其中,表示作业i所需分配的工作槽数,表示作业i正在运行的任务数,pij表示任务Aij的执行时间,Aij表示作业i的第j个任务,表示任务Aij已经过的执行时间,表示作业i的等待任务集合,表示作业i已完成的任务集合,Di表示作业i的截止期,t表示当前***时间,K表示K个时间单元。
其工作流程包括以下步骤:
S1.计算各作业所需分配工作槽数创建作业优先级队列。
S2.如果作业队列为空,转到S10。否则,转到S3。
S3.将集群的空闲工作槽加入到空闲工作槽列表中。
S4.根据任务运行时间长短,交替把时间长的任务和时间短的任务加入到任务列表中,直到任务列表和空闲工作槽列表长度相等。
S5.根据本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表的数据本地化代价,构建一个代价矩阵,其中,本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表分别代表着节点层次的数据本地化、机架层次的数据本地化和远程的数据本地化,代价矩阵的行代表工作槽,列代表任务,对应的值是任务和工作槽的数据本地化代价。
S6.根据代价矩阵,进行任务的工作槽分配,得到工作槽关联列表。
S7.将关联列表和任务列表中的元素一一对应,加入到分配列表中,并分配相应资源,让任务执行。
S8.任务完成后,更新对应的作业的状态,包括作业运行任务数、作业剩余任务数、作业完成任务数以及任务执行时间等。
S9.根据模糊逻辑控制***更新新集群环境,主要是包括CPU使用率、内存使用率和网络带宽使用率,通过模糊规则,确定是否要为集群增加或者不变后者减少工作槽数量。转到S1。
S10.输出结果,算法结束。
所述步骤S6中根据代价矩阵,进行任务的工作槽分配,得到工作槽关联列表的方法,包括以下步骤:
S601.记录代价矩阵的每一列的最小值,按列最小值非递减顺序重新排列代价矩阵的列的顺序。
S602.记录每一列的节点级数据本地化的行、机架级数据本地化的行和远程数据本地化的行。
S603.依次选择代价矩阵的每列,如果列号没有越界,则转到S604。否则,跳到S611。
S604.如果该列节点级数据本地化行为空,则转到S606。否则,转到S605。
S605.随机选择一个节点级数据本地化行给该列,转到S609。
S606.如果该列机架级数据本地化行为空,则转到S608。否则,跳到S607。
S607.随机选择一个机架级数据本地化行给该列,转到S609。
S608.随机选择一个远程级数据本地化行给该列。
S609.将该行对应的工作槽加入到关联列表中。
S610.将该行从其他列的节点级数据本地化的行、机架级数据本地化的行和远程数据本地化的行中删去,列号递增,返回S604。
S611.输出关联列表,算法结束。
所述步骤S9中根据模糊逻辑控制***更新新集群环境的方法:
S901.根据当前集群环境的CPU利用率和CPU隶属函数,构建CPU隶属值矩阵。
S902.根据当前集群环境的内存利用率和内存隶属函数,构建内存隶属值矩阵。
S903.根据当前集群环境的网络带宽利用率和网络带宽隶属函数,构建网络带宽隶属值矩阵。
S904.根据模糊规则、CPU隶属值矩阵、内存隶属值矩阵和网络带宽隶属值矩阵,构建模糊规则矩阵和模糊值矩阵。
S905.根据模糊规则矩阵和模糊值矩阵,通过最大隶属值,计算工作槽变化值,如果值是1,表示给服务器增加一个工作槽。值是-1,表示给服务器减少一个工作槽。值是0,表示不变。
S906.方法结束。
有益效果:本发明提供的一种最小化MapReduce集群能耗的任务调度方法,与现有技术相比,具有以下有益效果:
本发明在建立作业优先级队列时考虑截止期约束,从而可以确保最大数量的作业能够在截止期前完成。在作业任务排序和分配阶段综合考虑数据本地化因素和资源利用率因素,两方面因素在控制能量消耗方面起到关键作用。最后,根据服务器上作业的完成情况,利用模糊逻辑实时更新服务器状态,动态的决定是否要为服务器增加或者减少或者保持不变工作槽的数量,以提高服务器的利用率。在数据密集型作业调度环境中数据本地化因素显得尤为重要,数据迁移会造成大量能量消耗。因此,本发明综合考虑了作业截止期、资源利用率和数据本地化,优化服务器总运行时间,从而减少集群能量消耗。
附图说明
图1是本发明的云计算集群任务调度结构示意图。
图2是本发明中搭建在服务器上的模糊逻辑***示意图。
图3是本发明实施例中实现最小化MapReduce集群能耗的任务调度方法详细流程图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示为一种
一种最小化MapReduce集群能耗的任务调度方法,综合考虑数据本地化、资源利用率和作业截止期约束,在任务调度过程中,利用构建在服务器上的模糊逻辑控制***,动态改变服务器的工作槽数量,优化任务调度顺序,尽早的完成全部作业,减少集群总的工作时间,减少集群的能耗。该方法包括以下阶段:
A.预处理阶段:在每个服务器上构建模糊逻辑控制***,以便动态的更新服务器上的工作槽数量。
根据收集到的资源利用率,所述资源利用率包括CPU利用率、内存利用率和网络带宽利用率,分别获取CPU利用率、内存利用率和网络带宽利用率的频率分布情况,根据CPU利用率、内存利用率和网络带宽利用率的频率分布情况分别确定出CPU利用率、内存利用率和网络带宽利用率较为精确的隶属函数,由频率分布图和数学模型确定出最终的隶属函数。依据相应专家给出的模糊规则和得到的隶属函数构造每个服务器上的模糊控制***,在任务调度过程中,利用构建在服务器上的模糊逻辑控制***,动态改变服务器的工作槽数量,优化任务调度顺序,从而动态的决定服务器上的工作槽数量,为后续的资源利用率的改善提供基础。
所述预处理阶段具体步骤如下:
A1.记录服务器的CPU利用率、内存利用率和网络带宽利用率的实时数据,形成数据集。
A2.对步骤A1中的数据集通过采样分析得到CPU利用率、内存利用率和网络带宽利用率的频率分布图,由频率分布图和数学模型确定各个服务器CPU利用率、内存利用率和网络带宽利用率的隶属函数。
A3.利用经验和专家知识构建模糊规则,其中部分模糊规则如下所示:
其中,利用率下的L、M、H分别表示低利用率、中利用率和高利用率,而输出下的L、M、H,分别代表着为服务器增加一个工作槽、服务器上工作槽数量不变和将服务器上的工作槽减少一个。
A4.根据确定的CPU利用率、内存利用率和网络带宽利用率的隶属函数和构建的模糊规则构造每个服务器上的模糊逻辑控制***,在任务调度过程中根据模糊逻辑控制***实时更新服务器环境状态,动态改变服务器上的工作槽数量。
B.解决方案阶段:根据截止期和数据本地化的约束,对作业和任务进行排序,使得较多的作业可以在截止期内完成,并使得集群总运行时间降低。
首先根据每个作业的正在运行任务数、等待处理的任务数和已经完成的任务数进行作业所需最少工作槽数量的计算,依据最少工作槽数建立作业的优先级队列。然后根据作业的优先级队列,依次取出优先级队列中的作业,交替选择该作业的执行时间长的任务和执行时间短的任务进行排队建立任务队列,直到任务队列的长度和集群上的全部空闲工作槽数量相等。建立任务工作槽关联列表,优先选择数据本地化代价最小的空闲工作槽分配给任务并执行。
所述解决方案阶段中包括以下步骤:
B1.根据每个作业的正在运行任务数、等待处理的任务数和已经完成的任务数进行作业所需最少工作槽数量的计算,并按照所需最少工作槽数从大到小对作业进行排序得到作业的优先级队列。
作业所需分配的工作槽数的计算公式如下:
ξ i A = Σ j = 1 | A i r | ( p i j - p i j e ) + ( | A i w | × Σ k = 1 | A i c | p i k | A i c | ) D i - t - K - | A i r |
其中,表示作业i所需分配的工作槽数,表示作业i正在运行的任务数,pij表示任务Aij的执行时间,Aij表示作业i的第j个任务,表示任务Aij已经过的执行时间,表示作业i的等待任务集合,表示作业i已完成的任务集合,Di表示作业i的截止期,t表示当前***时间,K表示K个时间单元。
B2.在每个心跳期,按序从作业优先级队列中获取作业,交替选择作业中的具有长执行时间的任务和短执行时间的任务,依次加入到任务队列,直到任务队列的长度和集群上的全部空闲工作槽数量相等为止。
B3.为了更好的利用数据的本地化,每一个任务都有一个本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表,它们分别代表着节点层次的数据本地化、机架层次的数据本地化和远程的数据本地化,通过一个数据本地化代价的矩阵,确定分配给各任务的工作槽,得到一个关联列表,并执行任务。其中数据本地化表示任务所分配到的节点要接近于它所需处理的输入数据所在的节点。数据本地化程度由高到低可分为三个级别,分别为节点级别,机架级别,远程级别。
C.更新阶段:在每个心跳期,根据任务的执行情况更新任务排序,并根据服务器的资源利用率和模糊逻辑控制***,实时更新集群环境。
在每个心跳期,根据任务的当前执行情况实时更新任务排序:如已完成的任务数、当前正在处理的任务数、还未分配的任务数和当前作业的执行速度等,实时更新任务排序。在服务器配置了模糊控制***的前提下,根据每个服务器当前的CPU利用率、内存利用率和网络带宽利用率动态决定是否要改变该服务器上的工作槽数量。通过改变工作槽的数量,来提高服务器的利用率,尽早的完成全部作业,减少整个集群的能耗。
所述更新阶段包括以下步骤:
C1.对当前所有未完成的作业,依据B1中所示公式计算其相应的所需最少工作槽数,并按照所需最少工作槽数从大到小对作业进行排序。
C2.将服务器的当前CPU利用率,内存利用率和网络带宽利用率作为模糊控制***的输入值,依据隶属函数和所满足的模糊规则得到其对应的输出值,即当前服务器的工作槽数是否需要发生变化。
其工作流程包括以下步骤:
S1.计算各作业所需分配工作槽数创建作业优先级队列。
S2.如果作业队列为空,转到S10。否则,转到S3。
S3.将集群的空闲工作槽加入到空闲工作槽列表中。
S4.根据任务运行时间长短,交替把时间长的任务和时间短的任务加入到任务列表中,直到任务列表和空闲工作槽列表长度相等。
S5.根据本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表的数据本地化代价,构建一个代价矩阵,其中,本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表分别代表着节点层次的数据本地化、机架层次的数据本地化和远程的数据本地化,代价矩阵的行代表工作槽,列代表任务,对应的值是任务和工作槽的数据本地化代价。
S6.根据代价矩阵,进行任务的工作槽分配,得到工作槽关联列表。
所述步骤S6中根据代价矩阵,进行任务的工作槽分配,得到工作槽关联列表的方法,包括以下步骤:
S601.记录代价矩阵的每一列的最小值,按列最小值非递减顺序重新排列代价矩阵的列的顺序。
S602.记录每一列的节点级数据本地化的行、机架级数据本地化的行和远程数据本地化的行。
S603.依次选择代价矩阵的每列,如果列号没有越界,则转到S604。否则,跳到S611。
S604.如果该列节点级数据本地化行为空,则转到S606。否则,转到S605。
S605.随机选择一个节点级数据本地化行给该列,转到S609。
S606.如果该列机架级数据本地化行为空,则转到S608。否则,跳到S607。
S607.随机选择一个机架级数据本地化行给该列,转到S609。
S608.随机选择一个远程级数据本地化行给该列。
S609.将该行对应的工作槽加入到关联列表中。
S610.将该行从其他列的节点级数据本地化的行、机架级数据本地化的行和远程数据本地化的行中删去,列号递增,返回S604。
S611.输出关联列表,算法结束。
S7.将关联列表和任务列表中的元素一一对应,加入到分配列表中,并分配相应资源,让任务执行。
S8.任务完成后,更新对应的作业的状态,包括作业运行任务数、作业剩余任务数、作业完成任务数以及任务执行时间等。
S9.根据模糊逻辑控制***更新新集群环境,主要是包括CPU使用率、内存使用率和网络带宽使用率,通过模糊规则,确定是否要为集群增加或者不变后者减少工作槽数量。转到S1。
所述步骤S9中根据模糊逻辑控制***更新新集群环境的方法:
S901.根据当前集群环境的CPU利用率和CPU隶属函数,构建CPU隶属值矩阵。
S902.根据当前集群环境的内存利用率和内存隶属函数,构建内存隶属值矩阵。
S903.根据当前集群环境的网络带宽利用率和网络带宽隶属函数,构建网络带宽隶属值矩阵。
S904.根据模糊规则、CPU隶属值矩阵、内存隶属值矩阵和网络带宽隶属值矩阵,构建模糊规则矩阵和模糊值矩阵。
S905.根据模糊规则矩阵和模糊值矩阵,通过最大隶属值,计算工作槽变化值,如果值是1,表示给服务器增加一个工作槽。值是-1,表示给服务器减少一个工作槽。值是0,表示不变。
S906.方法结束。
S10.输出结果,算法结束。
本发明考虑作业截止期约束、数据本地化和资源利用率,通过最小化集群总运行时间降低能量消耗,具体包括以下三步骤:1)建立作业优先级队列,其主要特点是在作业截止期约束下,根据作业已完成任务数、正在运行任务数和等待运行任务数计算作业所需分配的工作槽数量并建立作业优先级队列;2)基于数据本地化的任务调度,其主要特点是依次选择作业队列中的作业,将作业的长短任务依次排队,将数据本地化代价小的空闲工作槽优先分配给任务的,得到任务工作槽关联列表,并执行任务;3)改善集群资源利用率,其主要特点是在每一个心跳期,记录服务器的资源利用率,包括CPU利用率、内存利用率和网络带宽利用率,利用模糊逻辑控制***,动态调整服务器工作槽数量。最终,通过减少集群总运行时间,降低能耗。该方法在绿色计算领域有广泛的应用价值和使用前景。
如图1所示为本发明的一个具体实例,包括云计算服务器用户11,作业集合12,云计算服务器集群13和作业调度器14。首先云计算服务器用户将作业提交给云平台,然后云计算服务器集群的作业调度器负责将这些作业中的任务分配到相应的服务器机架上。每一台机架上有多台服务器,且每台服务器有多个工作槽,作业的每一个任务对应一个工作槽。本发明搭建在服务器上的模糊逻辑***示意图如图2所示,包括模糊化21,通过模糊规则222,进行模糊推论221,最后逆模糊化23。
假设某用户提交的作业集合为J={J1,J2,J3,J4,J5},每个作业均有五个Map任务。任务集合为{A10,...,A14,A20,...,A24,...,A30,...A34}。MapReduce计算集群中服务器集群为S={S1,S2,S3,S4,S5},5个服务器被放置在2个机架上,机架集合为R={R1,R2},{S1,S2,S3}被放置在R1上,{S4,S5}被放置在R2上。每一台服务器均设有5个工作槽,工作槽集合为{L11,...,L15,L21,...,L25,L31,...,L35,...,L41,...,L45,L51,...L55},且当前已有部分工作槽被占用或无法使用。工作集群运行了一段时间后每个作业各有三个任务未开始执行,等待任务集合为{A11,A12,A13,A21,A22,A23,A31,A32,A33},空闲工作槽集合为{L10,L21,L31,L30,L40}。
图3是本发明实施例中实现MapReduce集群能耗最小的任务调度流程图。如图3所示,任务调度步骤如下:
S1.根据公式计算得出初始化作业优先级队列为JobList={J2,J1,J3}。
S2.此时作业队列不空。
S3.将集群中的空闲工作槽加入到IdleList={L10,L21,L31,L30,L40}。
S4.根据作业队列TaskList,依次交替选择作业的长短任务,直到TaskList和IdleList长度相等,TaskList={}。
S5.构建分配代价矩阵:
1代表节点级的数据本地化工作槽,3代表机架级数据本地化工作槽,5代表远程级数据本地化工作槽。
S6.根据算法流程图中S601-S611,得到一个工作槽的关联列表SelList={}。
S7.将任务列表和工作槽关联列表联立,加入到分配列表AssignList中,AssignList={},分配资源让列表中的任务运行。
S8.在每个心跳期,更新作业状态,包括作业运行任务、作业剩余任务、作业完成任务、任务执行时间。
S9.利用模糊逻辑跟新集群环境。此时CPU利用率、内存利用率和网络带宽利用率分别是40,65,30,通过模糊隶属函数,得到CPU模糊值矩阵(0.189,0.811,0),内存模糊值矩阵(0,0.237,0.427),网络带宽矩阵(0,0.842,0.158),构建模糊规则矩阵和模糊值矩阵:
R 1 [ 0 ] = 0 0 0 0 B ′ ( z ) C ′ ( z ) 0 A ′ ( z ) B ′ ( z )
R 1 [ 1 ] = 0 0 0 0 B ′ ( z ) B ′ ( z ) 0 B ′ ( z ) B ′ ( z ) R 1 [ 2 ] = 0 0 0 0 0 0 0 0 0
R 2 [ 0 ] = 0 0 0 0 0.189 0.189 0 0.158 0.158 R 2 [ 1 ] = 0 0 0 0 0.237 0.437 0 0.158 0.158
R 2 [ 2 ] = 0 0 0 0 0 0 0 0 0
其中、、分别代表着隶属函数的低、中、高输出的模糊值。通过对R1和R2的运算,得到R3:
R 3 [ 0 ] = 0 0 0 0 min ( B ′ ( z ) , 0.189 ) min ( C ′ ( z ) , 0.189 ) 0 min ( A ′ ( z ) , 0.158 ) min ( B ′ ( z ) , 0.158 )
R 3 [ 1 ] = 0 0 0 0 min ( B ′ ( z ) , 0.237 ) min ( B ′ ( z ) , 0.437 ) 0 min ( B ′ ( z ) , 0.158 ) min ( B ′ ( z ) , 0.158 )
R 3 [ 2 ] = 0 0 0 0 0 0 0 0 0
则输出的模糊值是:
μ=max{min(B′(z),0.189),min(C′(z)0.189,)
min(A′(z),0.158),min(B′(z)0.158),min(B′(z),0.237),)
min(B′(z),0.437),min(B′(z),0.158),min(B′(z),0.158)}
即μ=0.437,对应着工作槽变化量是0,也就是不需要为服务器增减工作槽。此后算法从新返回S1。
通过上述过程,本发明实现MapReduce集群上的任务调度方法,通过恰当的作业优先级队列、任务调度方法和改善集群资源利用率的方法,充分降低了整个MapReduce集群的能量消耗。尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (8)

1.一种最小化MapReduce集群能耗的任务调度方法,其特征在于:包括以下阶段:
A.预处理阶段:根据收集到的资源利用率,所述资源利用率包括CPU利用率、内存利用率和网络带宽利用率,分别获取CPU利用率、内存利用率和网络带宽利用率的频率分布情况,根据CPU利用率、内存利用率和网络带宽利用率的频率分布情况分别确定出CPU利用率、内存利用率和网络带宽利用率的隶属函数;依据相应专家给出的模糊规则和得到的隶属函数构造每个服务器上的模糊控制***,在任务调度过程中,利用构建在服务器上的模糊逻辑控制***,动态改变服务器的工作槽数量,优化任务调度顺序,从而动态的决定服务器上的工作槽数量;
B.解决方案阶段:首先根据每个作业的正在运行任务数、等待处理的任务数和已经完成的任务数进行作业所需最少工作槽数量的计算,依据最少工作槽数建立作业的优先级队列;然后根据作业的优先级队列,依次取出优先级队列中的作业,交替选择该作业的执行时间长的任务和执行时间短的任务进行排队建立任务队列,直到任务队列的长度和集群上的全部空闲工作槽数量相等;建立任务工作槽关联列表,优先选择数据本地化代价最小的空闲工作槽分配给任务并执行;
C.更新阶段:在每个心跳期,根据任务的当前执行情况实时更新任务排序;在服务器配置了模糊控制***的前提下,根据每个服务器当前的CPU利用率、内存利用率和网络带宽利用率动态决定是否要改变该服务器上的工作槽数量。
2.根据权利要求1所述的最小化MapReduce集群能耗的任务调度方法,其特征在于:所述预处理阶段具体步骤如下:
A1.记录服务器的CPU利用率、内存利用率和网络带宽利用率的实时数据,形成数据集;
A2.对步骤A1中的数据集通过采样分析得到CPU利用率、内存利用率和网络带宽利用率的频率分布图,由频率分布图和数学模型确定各个服务器CPU利用率、内存利用率和网络带宽利用率的隶属函数;
A3.利用经验和专家知识构建模糊规则;
A4.根据确定的CPU利用率、内存利用率和网络带宽利用率的隶属函数和构建的模糊规则构造每个服务器上的模糊逻辑控制***,在任务调度过程中根据模糊逻辑控制***实时更新服务器环境状态,动态改变服务器上的工作槽数量。
3.根据权利要求2所述的最小化MapReduce集群能耗的任务调度方法,其特征在于:所述解决方案阶段中包括以下步骤:
B1.根据每个作业的正在运行任务数、等待处理的任务数和已经完成的任务数进行作业所需最少工作槽数量的计算,并按照所需最少工作槽数从大到小对作业进行排序得到作业的优先级队列;
B2.在每个心跳期,按序从作业优先级队列中获取作业,交替选择作业中的具有长执行时间的任务和短执行时间的任务,依次加入到任务队列,直到任务队列的长度和集群上的全部空闲工作槽数量相等为止;
B3.每一个任务都有一个本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表,它们分别代表着节点层次的数据本地化、机架层次的数据本地化和远程的数据本地化,通过一个数据本地化代价的矩阵,确定分配给各任务的工作槽,得到一个关联列表,并执行任务;其中数据本地化表示任务所分配到的节点要接近于它所需处理的输入数据所在的节点;数据本地化程度由高到低可分为三个级别,分别为节点级别,机架级别,远程级别。
4.根据权利要求3所述的最小化MapReduce集群能耗的任务调度方法,其特征在于:所述更新阶段包括以下步骤:
C1.对当前所有未完成的作业,依据B1中所示公式计算其相应的所需最少工作槽数,并按照所需最少工作槽数从大到小对作业进行排序;
C2.将服务器的当前CPU利用率,内存利用率和网络带宽利用率作为模糊控制***的输入值,依据隶属函数和所满足的模糊规则得到其对应的输出值,即当前服务器的工作槽数是否需要发生变化。
5.根据权利要求5所述的最小化MapReduce集群能耗的任务调度方法,其特征在于;作业所需分配的工作槽数的计算公式如下:
ξ i A = Σ j = 1 | A i r | ( p i j - p i j e ) + ( | A i w | × Σ k = 1 | A i c | p i k | A i c | ) D i - t - K - | A i r |
其中,表示作业i所需分配的工作槽数,表示作业i正在运行的任务数,pij表示任务Aij的执行时间,Aij表示作业i的第j个任务,表示任务Aij已经过的执行时间,表示作业i的等待任务集合,表示作业i已完成的任务集合,Di表示作业i的截止期,t表示当前***时间,K表示K个时间单元。
6.根据权利要求1所述的最小化MapReduce集群能耗的任务调度方法,其特征在于:工作流程包括以下步骤:
S1.计算各作业所需分配工作槽数创建作业优先级队列;
S2.如果作业队列为空,转到S10;否则,转到S3;
S3.将集群的空闲工作槽加入到空闲工作槽列表中;
S4.根据任务运行时间长短,交替把时间长的任务和时间短的任务加入到任务列表中,直到任务列表和空闲工作槽列表长度相等;
S5.根据本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表的数据本地化代价,构建一个代价矩阵,其中,本地节点工作槽列表、本地机架工作槽列表和远程工作槽列表分别代表着节点层次的数据本地化、机架层次的数据本地化和远程的数据本地化,代价矩阵的行代表工作槽,列代表任务,对应的值是任务和工作槽的数据本地化代价;
S6.根据代价矩阵,进行任务的工作槽分配,得到工作槽关联列表;
S7.将关联列表和任务列表中的元素一一对应,加入到分配列表中,并分配相应资源,让任务执行;
S8.任务完成后,更新对应的作业的状态,包括作业运行任务数、作业剩余任务数、作业完成任务数以及任务执行时间等;
S9.根据模糊逻辑控制***更新新集群环境,主要是包括CPU使用率、内存使用率和网络带宽使用率,通过模糊规则,确定是否要为集群增加或者不变后者减少工作槽数量;转到S1;
S10.输出结果,算法结束。
7.根据权利要求6所述的最小化MapReduce集群能耗的任务调度方法,其特征在于:所述步骤S6中根据代价矩阵,进行任务的工作槽分配,得到工作槽关联列表的方法,包括以下步骤:
S601.记录代价矩阵的每一列的最小值,按列最小值非递减顺序重新排列代价矩阵的列的顺序;
S602.记录每一列的节点级数据本地化的行、机架级数据本地化的行和远程数据本地化的行;
S603.依次选择代价矩阵的每列,如果列号没有越界,则转到S604;否则,跳到S611;
S604.如果该列节点级数据本地化行为空,则转到S606;否则,转到S605;
S605.随机选择一个节点级数据本地化行给该列,转到S609;
S606.如果该列机架级数据本地化行为空,则转到S608;否则,跳到S607;
S607.随机选择一个机架级数据本地化行给该列,转到S609;
S608.随机选择一个远程级数据本地化行给该列;
S609.将该行对应的工作槽加入到关联列表中;
S610.将该行从其他列的节点级数据本地化的行、机架级数据本地化的行和远程数据本地化的行中删去,列号递增,返回S604;
S611.输出关联列表,算法结束。
8.根据权利要求7所述的最小化MapReduce集群能耗的任务调度方法,其特征在于:所述步骤S9中根据模糊逻辑控制***更新新集群环境的方法:
S901.根据当前集群环境的CPU利用率和CPU隶属函数,构建CPU隶属值矩阵;
S902.根据当前集群环境的内存利用率和内存隶属函数,构建内存隶属值矩阵;
S903.根据当前集群环境的网络带宽利用率和网络带宽隶属函数,构建网络带宽隶属值矩阵;
S904.根据模糊规则、CPU隶属值矩阵、内存隶属值矩阵和网络带宽隶属值矩阵,构建模糊规则矩阵和模糊值矩阵;
S905.根据模糊规则矩阵和模糊值矩阵,通过最大隶属值,计算工作槽变化值,如果值是1,表示给服务器增加一个工作槽;值是-1,表示给服务器减少一个工作槽;值是0,表示不变;
S906.方法结束。
CN201610785554.6A 2016-08-29 2016-08-29 一种最小化MapReduce集群能耗的任务调度方法 Active CN106371924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610785554.6A CN106371924B (zh) 2016-08-29 2016-08-29 一种最小化MapReduce集群能耗的任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610785554.6A CN106371924B (zh) 2016-08-29 2016-08-29 一种最小化MapReduce集群能耗的任务调度方法

Publications (2)

Publication Number Publication Date
CN106371924A true CN106371924A (zh) 2017-02-01
CN106371924B CN106371924B (zh) 2019-09-20

Family

ID=57899576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610785554.6A Active CN106371924B (zh) 2016-08-29 2016-08-29 一种最小化MapReduce集群能耗的任务调度方法

Country Status (1)

Country Link
CN (1) CN106371924B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107219760A (zh) * 2017-05-23 2017-09-29 西北工业大学 一种多属性约束模糊推理的uuv协调控制模块建模方法
CN107704069A (zh) * 2017-06-15 2018-02-16 重庆邮电大学 一种基于能耗感知的Spark节能调度方法
CN109408220A (zh) * 2017-08-17 2019-03-01 北京国双科技有限公司 一种任务处理方法及装置
CN114138471A (zh) * 2021-11-18 2022-03-04 苏州浪潮智能科技有限公司 一种软件业务绑定cpu核心的方法及相关装置
CN116860419A (zh) * 2023-09-04 2023-10-10 北京大学 一种服务器无感知数据分析的并行调度方法及***
CN117519953A (zh) * 2024-01-08 2024-02-06 北京大学 一种面向服务器无感知计算的分离式内存管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN103631657A (zh) * 2013-11-19 2014-03-12 浪潮电子信息产业股份有限公司 一种基于MapReduce的任务调度算法
CN104239154A (zh) * 2014-10-09 2014-12-24 浪潮(北京)电子信息产业有限公司 一种Hadoop集群中的作业调度方法和作业调度器
CN104750556A (zh) * 2015-04-14 2015-07-01 浪潮电子信息产业股份有限公司 一种hpc集群作业调度方法及装置
CN105487930A (zh) * 2015-12-01 2016-04-13 中国电子科技集团公司第二十八研究所 一种基于Hadoop的任务优化调度方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN103631657A (zh) * 2013-11-19 2014-03-12 浪潮电子信息产业股份有限公司 一种基于MapReduce的任务调度算法
CN104239154A (zh) * 2014-10-09 2014-12-24 浪潮(北京)电子信息产业有限公司 一种Hadoop集群中的作业调度方法和作业调度器
CN104750556A (zh) * 2015-04-14 2015-07-01 浪潮电子信息产业股份有限公司 一种hpc集群作业调度方法及装置
CN105487930A (zh) * 2015-12-01 2016-04-13 中国电子科技集团公司第二十八研究所 一种基于Hadoop的任务优化调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHIJIA CHEN 等: "A dynamic resource scheduling method based on fuzzy control theory in cloud environment", 《JOURNAL OF CONTROL SCIENCE AND ENGINEERING ARCHIVE》 *
周峰: "虚拟化计算环境中基于QoS约束的资源分配管理技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107219760A (zh) * 2017-05-23 2017-09-29 西北工业大学 一种多属性约束模糊推理的uuv协调控制模块建模方法
CN107219760B (zh) * 2017-05-23 2019-12-27 西北工业大学 一种多属性约束模糊推理的uuv协调控制模块建模方法
CN107704069A (zh) * 2017-06-15 2018-02-16 重庆邮电大学 一种基于能耗感知的Spark节能调度方法
CN107704069B (zh) * 2017-06-15 2020-08-04 重庆邮电大学 一种基于能耗感知的Spark节能调度方法
CN109408220A (zh) * 2017-08-17 2019-03-01 北京国双科技有限公司 一种任务处理方法及装置
CN114138471A (zh) * 2021-11-18 2022-03-04 苏州浪潮智能科技有限公司 一种软件业务绑定cpu核心的方法及相关装置
CN114138471B (zh) * 2021-11-18 2024-04-19 苏州浪潮智能科技有限公司 一种软件业务绑定cpu核心的方法及相关装置
CN116860419A (zh) * 2023-09-04 2023-10-10 北京大学 一种服务器无感知数据分析的并行调度方法及***
CN116860419B (zh) * 2023-09-04 2023-11-24 北京大学 一种服务器无感知数据分析的并行调度方法及***
CN117519953A (zh) * 2024-01-08 2024-02-06 北京大学 一种面向服务器无感知计算的分离式内存管理方法
CN117519953B (zh) * 2024-01-08 2024-04-05 北京大学 一种面向服务器无感知计算的分离式内存管理方法

Also Published As

Publication number Publication date
CN106371924B (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
CN110580196B (zh) 一种实现并行任务调度的多任务强化学习方法
CN106371924B (zh) 一种最小化MapReduce集群能耗的任务调度方法
Guo et al. Cloud resource scheduling with deep reinforcement learning and imitation learning
CN105159762B (zh) 基于贪心策略的启发式云计算任务调度方法
Shi et al. MDP and machine learning-based cost-optimization of dynamic resource allocation for network function virtualization
CN104331321B (zh) 基于禁忌搜索和负载均衡的云计算任务调度方法
Liu et al. Job scheduling model for cloud computing based on multi-objective genetic algorithm
CN103729246B (zh) 一种任务调度方法和装置
CN111026549A (zh) 一种电力信息通信设备自动化测试资源调度方法
CN110297699A (zh) 调度方法、调度器、存储介质及***
CN105975342A (zh) 基于改进布谷鸟搜索算法的云计算任务调度方法及***
CN104050042A (zh) Etl作业的资源分配方法及装置
CN109491761A (zh) 基于eda-ga混合算法的云计算多目标任务调度方法
Mahato et al. On scheduling transaction in grid computing using cuckoo search-ant colony optimization considering load
Chakravarthi et al. TOPSIS inspired budget and deadline aware multi-workflow scheduling for cloud computing
CN110086855A (zh) 基于蚁群算法的Spark任务智能感知调度方法
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
CN111913800B (zh) 基于l-aco的云中微服务成本优化的资源分配方法
CN109948848A (zh) 一种云中科学工作流下截止期限约束的费用优化调度方法
CN106502790A (zh) 一种基于数据分布的任务分配优化方法
Fan et al. Intelligent resource scheduling based on locality principle in data center networks
CN104112049A (zh) 基于P2P构架的MapReduce任务跨数据中心调度***及方法
CN114461368A (zh) 一种基于协同果蝇算法的多目标云工作流调度方法
CN105005503A (zh) 基于元胞自动机的云计算负载均衡任务调度方法
CN107168795B (zh) 基于cpu-gpu异构复合式并行计算框架的密码子偏差系数模型方法

Legal Events

Date Code Title Description
C06 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