CN107704069B - 一种基于能耗感知的Spark节能调度方法 - Google Patents

一种基于能耗感知的Spark节能调度方法 Download PDF

Info

Publication number
CN107704069B
CN107704069B CN201710452338.4A CN201710452338A CN107704069B CN 107704069 B CN107704069 B CN 107704069B CN 201710452338 A CN201710452338 A CN 201710452338A CN 107704069 B CN107704069 B CN 107704069B
Authority
CN
China
Prior art keywords
energy consumption
task
spark
tasks
execution time
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
CN201710452338.4A
Other languages
English (en)
Other versions
CN107704069A (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.)
Guangzhou Dayu Chuangfu Technology Co ltd
Original Assignee
Chongqing University of Post and Telecommunications
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 Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN201710452338.4A priority Critical patent/CN107704069B/zh
Publication of CN107704069A publication Critical patent/CN107704069A/zh
Application granted granted Critical
Publication of CN107704069B publication Critical patent/CN107704069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于能耗感知的Spark节能调度方法。首先构建Spark计算框架下大数据计算能耗模型,基于该模型建立任务与计算资源的能耗和执行时间关系策略表,通过策略表指导并优化Spark任务调度,在保证并行计算效率的前提下有效降低计算总能耗。本发明解决了Spark原有调度策略无法感知能耗的缺陷,该方法具有能耗感知,动态优化调度和高可扩展的特点,有效降低运行在Spark计算框架下的应用程序产生的能耗。

Description

一种基于能耗感知的Spark节能调度方法
技术领域
本发明涉及大数据处理领域和能效领域,具体是一种基于能耗感知的大数据能耗模型和基于该模型的Spark计算框架下的节能调度策略。
背景技术
大数据计算产生巨大电能消耗已经成为数据中心亟待解决的问题。目前许多企业和组织机构都面临大规模数据计算的问题,在考虑计算效率的同时,计算成本也是其关心的重要方面。企业和组织都希望能够降低大数据计算能耗从而减少计算成本。然而,在当前大数据时代背景下情况并不乐观,根据最近的研究报告[1]显示从2010年到2015年,德国数据中心耗电量增长了15%,增长到12亿千瓦时每年。2014年国际绿色和平组织(GreenpeaceInternational)的报告[2]称全球数据中心电能的需求量预期到2020年将会增加81%,可见运维数据中心消耗了巨大的电能。通过优化数据中心大数据计算任务调度方式,可以有效地减少大数据计算能耗的开支,从而提高数据中心的能效。
当前,Spark计算框架[3]被广泛应用于数据中心大数据计算。Spark提供了一个集群的分布式内存抽象即弹性分布式数据集(RDD),RDD是一个不可变的带分区记录集合,是Spark的编程模型。Spark根据RDD之间的依赖关系把RDD划分成不同阶段(stage),每个阶段都有一系列方法流水线式地处理RDD。每个阶段内将划分出个数与当前阶段最后一个RDD分区数相同的任务集,也就是一个分区的数据会被一个任务处理。这些任务将调度到worker节点上并行地处理。一个Spark计算框架下大数据应用,在一个worker上只能有一个executor进程,这个进程将占有计算资源,可以处理多个任务。那么任务调度问题就可以描述为装箱问题:任务是物品,executor进程是一些箱子,executor所占有的资源是箱子的大小,任务需要的资源量是物品的大小,将任务分配资源运行,显然这属于NP-hard问题。将任务分配在不同的executor上,运行时间、能耗都不相同,那么合理的分配将对降低大数据应用运行能耗起到至关重要的作用。
目前,Spark自身提供了两种调度策略[3],分别是FIFO和FAIR调度策略。这两种调度策略的调度粒度都是阶段。每个阶段内的任务按照本地化原则分配到随机打乱后的executor进程上执行。两种调度策略不同的地方在于:FIFO按照Job生成的顺序和Job下的阶段生成的顺序,为阶段排序,根据排序顺序分配计算资源。FAIR将阶段划分为多个组,每一组称为Pool,按照Pool的权重轮询Pool,为阶段排序,根据排序顺序分配计算资源。杨志伟,郑烇[4]等人提出一种基于异构Spark集群的自适应任务调度策略。该策略通过监测节点的负载及资源利用率,分析监测得到的参数,自适应动态调整节点任务分配权值,以上调度策略都没有考虑能耗的问题。Leverich和Kozyrakis[5]提出了一种用于MapReduce作业的能量管理方法。此方法选择性地关闭利用率低的节点降低能耗。他们在覆盖集内至少保留一个数据块副本,关掉不在覆盖集合中且利用率低的节点。L Mashayekhy等人[6]基于MapReduce计算框架提出了一种高效节能启发式任务调度算法,通过预先对特定作业做能耗分析得到低能耗的任务调度策略,此策略能在保证SLA要求的前提下有效降低能耗。以上节能策略都是基于MapReduce计算框架,目前对Spark能耗研究尚属不足。
Spark的任务调度是一个装箱问题,L Mashayekhy等人[6]基于MapReduce计算框架提出的启发式任务调度算法,根据预先的能耗分析结果,对Map阶段的计算资源和Reduce阶段的计算资源排序,每个阶段将任务放置在单位能耗低的Slot上。在实际应用中,每次都需要预先对新作业做能耗分析。当集群物理节点发生变化后,原先的性能分析结果需要重新生成,灵活性差,而且不能应用于解决Spark计算框架的能耗问题。
参考文献:
[1]Hintemann R,Beucker S,Clausen J,et al.Energy efficiency of datacenters-a system-oriented analysis of current development trends[C]//Electronics Goes Green.IEEE,2017.
[2]Salahuddin M,Alam K.Information and Communication Technology,electricity consumption and economic growth in OECD countries:A panel dataanalysis[J].International Journal of Electrical Power&Energy Systems,2016,76:185-193.
[3]张安站.Spark技术内幕[M].机械工业出版社,2015.
[4]杨志伟,郑烇,王嵩,等.异构Spark集群下自适应任务调度策略[J].计算机工程,2016,42(1):31-35.
[5]J.Leverich and C.Kozyrakis,On the energy(in)efficiency of Hadoopclusters[J]ACM SIGOPS Oper.Syst.Rev.,vol.44,no.1,pp.61–65,2010.
[6]Mashayekhy L,Nejad M M,Grosu D,et al.Energy-Aware Scheduling ofMapReduce Jobs for Big Data Applications[J].Parallel&Distributed Systems IEEETransactions on,2015,26(10):2720-2733.
[7]罗亮,吴文峻,张飞.面向云计算数据中心的能耗建模方法[J].软件学报,2014(7):1371-1387.
发明内容
本发明旨在解决以上现有技术的问题,提供一种基于能耗感知的大数据能耗模型和基于该模型且能显著降低大数据计算能耗的Spark计算框架调度方法。本发明的技术方案如下:
一种基于能耗感知的Spark节能调度方法,其包括以下步骤:
第一,构建基于Spark计算框架的大数据计算能耗模型;
第二,建立任务与计算资源的能耗关系策略表和执行时间关系策略表,两种策略表共同指导任务调度;
第三,根据策略表选取评价标准最优的计算资源,优先为其分配计算任务,同时保证并行计算任务均衡分配;
第四,通过数据探测初始化决策表,阶段任务执行完后更新能耗关系策略表和执行时间关系策略表。
进一步的,所述大数据计算能耗模型为:大数据应用App产生的能耗为Appec,定义如公式(8)所示
Figure GDA0002489292260000041
降低大数据应用的运行时能耗,即Appec的值,故目标函数定义如公式(9)所示
Figure GDA0002489292260000042
其中,i∈Z,j∈Z,k∈Z,l∈Z,
Figure GDA0002489292260000043
表示的任务放置方式,使用
Figure GDA0002489292260000044
表示任务
Figure GDA0002489292260000045
与资源进程exl之间的关系,定义如公式(5)所示
Figure GDA0002489292260000046
Figure GDA0002489292260000047
分配到exl上时
Figure GDA0002489292260000048
否则
Figure GDA0002489292260000049
进一步的,所述任务与计算资源的能耗关系策略表:表示Stageij集合和Exe的笛卡尔积的运算结果,保存了历史的,任意任务
Figure GDA00024892922600000410
在任意进程(exl)上运行时的能耗
Figure GDA00024892922600000411
初始状态,
Figure GDA00024892922600000412
即需要探测有效数据;
任务与计算资源的执行时间关系策略表:任意任务
Figure GDA00024892922600000413
在任意进程(exl)上执行的时间
Figure GDA00024892922600000414
初始状态,
Figure GDA00024892922600000415
同样也需要探测有效数据。
进一步的,所述根据能耗关系策略表和执行时间关系策略表选取评价标准最
优的计算资源具体包括:
在一批要并行处理的Stage范围内,对进程exl做评价eval定义如公式(10)
Figure GDA00024892922600000416
其中,Stage′表示当前DAGScheduler提交给TaskScheduler处理的Stage,Stage′表示TaskScheduler需要处理所有的Stage的并集,∑|Stage′|表示TaskScheduler需要处理所有Stage中task的总数,
Figure GDA0002489292260000051
表示Stage′集合中的taskk′在进程exl上执行的单位能耗,
Figure GDA0002489292260000052
表示Stage′集合中的taskk′单位能耗的总和,按照评价标准结合策略表对进程升序排序,组成队列。
进一步的,当策略表中
Figure GDA0002489292260000053
或者
Figure GDA0002489292260000054
时,表示任务
Figure GDA0002489292260000055
在进程exl上的能耗或执行时间为初始化状态,需要将进程exl放在队列前面,优先为此进程分配任务。
进一步的,根据进程升序排序队列得到当前最优的进程exl,根据执行时间策略表中执行时间
Figure GDA0002489292260000056
的值,将
Figure GDA0002489292260000057
的任务组成Set0集合,将
Figure GDA0002489292260000058
的任务按照
Figure GDA0002489292260000059
升序组成双端队列TaskQue;
Figure GDA00024892922600000510
则优先分配Set0中的任务到exl,直到exl资源耗尽或
Figure GDA00024892922600000511
若资源耗尽,则从ExeQue中取出次优的exl′继续分配任务;
Figure GDA00024892922600000512
即当前决策表数据无需探测或已分配完,将从TaskQue中头尾依次交替取出任务,分配到exl,直到exl资源耗尽或TaskQue队列为空,若资源耗尽,则从ExeQue中取出次优的exl′继续分配任务,若TaskQue队列为空,则已经将所有任务分配结束。
进一步的,当执行时间
Figure GDA00024892922600000513
时,需将此任务单独放入集合Set0中,优先进行探测。
进一步的,在任务运行结束后,记录本次运行时能耗和运行时间,更新能耗关系策略表和执行时间关系策略表,为下次运行相同任务提供决策。
本发明的优点及有益效果如下:
本发明创新点主要有以下两点:
1.对Spark大数据应用建立能耗模型
本发明首次提出了Spark大数据应用能耗、作业能耗以及阶段能耗的数学模型,详见公式(6)、(7)、(8),为准确计算spark大数据应用能耗提供模型依据。
优点:能耗模型利用集合的方式描述了,大数据应用(App)与作业(Job)的关系;作业(Job)与阶段(Stage)的关系;阶段(Stage)与任务(task)的关系。使用变量X描述了任务与进程(ex)之间的关系。计算任务在进程上的执行能耗,可灵活地得到阶段能耗、作业能耗以及应用能耗。同时也为Spark能耗研究提供了计算能耗基础。
2.提出能耗感知的Spark节能调度方法
能耗感知的Spark节能调度方法创新点可以细分为
2.1首次提出任务与计算资源的能耗关系策略表和执行时间关系策略表,记录历史的能耗关系、执行时间关系,为任务分配提供策略依据。同时在任务行完后,更新策略表中的数据。优点:使能耗感知的Saprk节能调度方法具有动态扩展性。本调度算法适用于重复运行相同大数据应用的场景,策略表机制在每次运行时动态更新,起到能耗感知的作用。当物理集群变化时,策略表更新机制可以及时感知到未知数据,探测更新。
2.2进程资源依据评价标准排序,用队列保存排序后的结果。这样容易拿到评价标准最优的进程,优先分配任务。评价标准是取当前阶段下的平均能耗。特殊地,需要探测的进程需要放在队列前方。优点:克服了原生Spark调度简单将计算资源随机混洗,不考虑进程资源能耗不同的问题。使本发明提出的节能调度方法有效降低应用运行时的能耗。需要探测的进程需要放在队列前方,保证在物理集群扩展时策略表能动态扩展。
2.3设立Set0集合保存需要探测的任务,设立TaskQue双端队列保存已知执行时间的任务,按照在进程上的执行时间排序。优先分配Set0集合中的任务,之后头尾交替分配TaskQue双端队列中的任务。优点:Set0集合保存的任务优先探测,保证在物理集群扩展时策略表能动态扩展。头尾交替分配TaskQue双端队列中的任务,保证每个进程分配的任务的执行时间均衡,避免出现一个节点运行完后,等待其他节点运行,产生能量消耗的问题。保证了本发明提出的节能调度方法有效降低运行时能耗。
优点:本发明提出能耗感知的Spark节能调度方法,可以有效地减少大数据计算能耗的开支,从而提高数据中心的能效,也可以有效降低由于大数据计算消耗大量电能而造成的温室气体排放量。
附图说明
图1是本发明提供优选实施例的算法图;
图2是计算整体流程图;
图3是MySQL数据库设计E-R图;
图4是WordCount程序逻辑执行图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
本发明的基本思想是:第一,构建基于Spark计算框架的大数据计算能耗模型;第二,建立任务与计算资源的能耗关系策略表和执行时间关系策略表,两种策略表共同指导任务调度;第三,根据策略表选取评价标准最优的计算资源,优先为其分配计算任务,同时保证并行计算任务均衡分配;第四,通过数据探测初始化决策表,阶段任务执行完后更新能耗关系策略表和执行时间关系策略表。本发明的技术方案包括以下步骤:
步骤一:能耗模型构建
Spark计算框架下,一个大数据应用(App)每遇到action操作会产生一个Jobi,对App定义如公式(1)所示。App表示大数据应用,其由m个Job组成。其中,Jobi根据RDD依赖关系划分为多个Stageij,对Jobi定义如公式(2)所示。Jobi表示App内第i个Job,其由n个Stage组成。其中,Stageij根据最后RDD的分区划分多个
Figure GDA0002489292260000081
对Stageij定义如公式(3)所示。Stageij表示Jobi上第j个Stage,其由o个task组成。
App={Job0,Job1,Job2,·,Jobm-1} (1)
Jobi={Stagei0,Stagei1,Stagei2,·,Stagei(n-1)} (2)
Figure GDA0002489292260000082
其中,0≤i<m,0≤j<n,i∈Z,j∈Z
Spark集群内可用的计算资源,即存在于每个worker节点上的executor进程,定义如公式(4)所示。Exe表示集群上所有可用executor进程资源集合。
Exe={ex0,ex1,ex2,·,exp-1} (4)
使用
Figure GDA0002489292260000083
表示
Figure GDA0002489292260000084
在exl上运行的能耗。使用
Figure GDA0002489292260000085
表示
Figure GDA0002489292260000086
在exl上所运行的时间。使用
Figure GDA0002489292260000087
表示任务
Figure GDA0002489292260000088
与资源进程exl之间的关系,定义如公式(5)所示
Figure GDA0002489292260000089
Figure GDA00024892922600000810
分配到exl上时
Figure GDA00024892922600000811
否则
Figure GDA00024892922600000812
其中,0≤k<o,0≤l<p,k∈Z,l∈Z。
根据公式(3)、公式(4)、公式(5)可得Jobi上第j个Stage产生的能耗为
Figure GDA00024892922600000813
定义如公式(6)所示
Figure GDA00024892922600000814
根据公式(2)、公式(6)可得App内第i个Job产生的能耗为Jobi ec,定义如公式(7)所示
Figure GDA00024892922600000815
根据公式(1)、公式(7)可得大数据应用App产生的能耗为Appec,定义如公式(8)所示
Figure GDA00024892922600000816
其中,i∈Z,j∈Z,k∈Z,l∈Z
本发明的目的是降低大数据应用的运行时能耗,即Appec的值,故目标函数定义如公式(9)所示
Figure GDA0002489292260000091
其中,i∈Z,j∈Z,k∈Z,l∈Z。
Figure GDA0002489292260000092
表示的任务放置方式,见公式(5)。不合理的任务放置,将会导致objec升高。这就意味着在同样的集群中,运行同样规模的大数据应用,将需要消耗更多的能量。由公式(9)可以看出,
Figure GDA0002489292260000093
如何放置任务,将对目标函数起到决定性作用。
步骤二:策略表初始化
任务与计算资源的能耗关系策略表,定义如表(1)所示。表(1)表示是Stageij集合和Exe的笛卡尔积的运算结果,保存了历史的,任意任务
Figure GDA0002489292260000094
在任意进程(exl)上运行时的能耗
Figure GDA0002489292260000095
初始状态,
Figure GDA0002489292260000096
即需要探测有效数据。
任务与计算资源的执行时间关系策略表,定义如表(2)所示。表(2)与表(1)不同的地方在于,其保存了历史的,任意任务
Figure GDA0002489292260000097
在任意进程(exl)上执行的时间
Figure GDA0002489292260000098
初始状态,
Figure GDA0002489292260000099
同样也需要探测有效数据。
Figure GDA00024892922600000910
表(1)能耗关系策略表(J)
Figure GDA0002489292260000101
表(2)执行时间关系策略表(ms)
步骤三:根据评价标准评估单位进程能耗并排序
Spark中,DAGScheduler会将一批能够并行处理的Stage,封装成taskSet送到TaskScheduler进行任务调度,因此本算法在这一批要并行处理的Stage范围内,对任意进程exl做评价eval定义如公式(10)
Figure GDA0002489292260000102
其中,Stage′表示当前DAGScheduler提交给TaskScheduler处理的Stage。Stage′表示TaskScheduler需要处理所有的Stage的并集。∑|Stage′|表示TaskScheduler需要处理所有Stage中task的总数。
Figure GDA0002489292260000103
表示Stage′集合中的taskk′在进程exl上执行的单位能耗。
Figure GDA0002489292260000104
表示Stage′集合中的taskk′单位能耗的总和。按照评价标准结合策略表对进程升序排序,组成队列(ExeQue)。特殊地,当策略表中
Figure GDA0002489292260000105
或者
Figure GDA0002489292260000106
时,表示任务
Figure GDA0002489292260000107
在进程exl上的能耗或执行时间为初始化状态,需要将进程exl放在队列前面,优先为此进程分配任务。
步骤四:将任务优先分配到评价标准最优的进程
由步骤三可以得到当前最优的进程exl,根据执行时间策略表将任务按照执行时间
Figure GDA0002489292260000108
升序排序,组成双端队列(TaskQue)。特殊的,当
Figure GDA0002489292260000109
时,需将此任务单独放入集合Set0中,优先进行探测。
Figure GDA0002489292260000111
则优先分配Set0中的任务到exl,直到exl资源耗尽或
Figure GDA0002489292260000112
若资源耗尽,则从ExeQue中取出次优的ex′l继续分配任务。
Figure GDA0002489292260000113
即当前决策表数据无需探测或已分配完,将从TaskQue中头尾依次交替取出任务,分配到exl,直到exl资源耗尽或TaskQue队列为空。若资源耗尽,则从ExeQue中取出次优的ex′l继续分配任务。若TaskQue队列为空,则已经将所有任务分配结束。
交替分配任务,是为了保证每个进程上分配的任务执行时间尽量平衡,保证不会出现某一台机器执行时间过长,造成其他机器待机,造成不必要的能量消耗。
步骤五:能耗感知的任务调度策略
在任务运行结束后,本算法记录本次运行时能耗和运行时间,更新能耗关系策略表和执行时间关系策略表,为下次运行相同任务提供决策。步骤四的优先探测
Figure GDA0002489292260000114
或者
Figure GDA0002489292260000115
的条件,保证了策略表只要存在未知情况,就会探测出来,保证决策数据完整。本算法协同Spark DAGScheduler完成Spark大数据应用的计算,由步骤一提出的能耗模型,得出大数据应用所产生的能耗。
本发明的实施包括能耗评价模块和调度模块。能耗评价模块对应用程序执行结束后,根据能耗模型得到程序运行能耗,同时兼顾更新策略表的功能。调度模块按照本发明能耗感知调度算法进行任务调度。
1、能耗评价模块
能耗评价模块具有计算worker节点上每个任务线程执行时间的功能,具体做法通过分析Spark提供的监控信息,可以得到任务在进程上的运行时间。也就是说可以得到任意任务
Figure GDA0002489292260000116
在任意进程(exl)上执行的时间
Figure GDA0002489292260000117
能耗评价模块还具有计算worker节点上每个任务线程所产生能耗的功能,具体做法如下:通过操作***资源监控程序,获得exl进程在运行时的CPU使用情况(Ucpu)和内存使用情况(Umemory)。
P=C0+C1×UCPU+C2×Umemory (11)
基于***使用率的能耗功率模型[7],公式(11)所示,可以得到进程在运行情况下的瞬时能耗功率(Pexe)。
Figure GDA0002489292260000121
由公式(12)得到进程exl能耗变化量(Pec)。Pec准确反映了负载在进程exl上产生的能耗。任务的执行时间与任务的能耗是服从均匀分布的,也就是说任务执行时间越长,任务产生的能耗越大。
Figure GDA0002489292260000122
由公式(13)可以得到
Figure GDA0002489292260000123
在任意进程(exl)上执行的能耗
Figure GDA0002489292260000124
其中∑pk′l表示在进程exl上所有任务执行的时间总和。
能耗评价模块将任务在进程上的执行时间和产生能耗记录在MySQL数据库中,方便调度模块根据记录产生决策,调度任务。数据表设计如图(3)所示。最后,程序执行完成,能耗评估模块根据能耗模型公式(8)得到程序的运行能耗。
2、调度模块
调度模块修改org.apache.spark.scheduler.TaskScheduler的实现类TaskSchedulerImpl。将原始的调度策略粒度从阶段修改为任务,将任务按照执行时间排序。将原始的进程资源混洗,改为按照评价标准排序。将原始的任务按照本地化程度分配,改为按照执行时间分配最优进程。总体来说就是按照Spark能耗感知算法,如图(1)所示,调度根据决策表,调度任务。
下面通过WordCount为例来对本发明进行具体实施说明:
WordCount程序是一个简单统计的单词统计程序。WordCount的主要功能是统计文本中每个单词出现的频次。此程序逻辑执行图,如图(4)所示。其逻辑执行过程主要经过以下几个RDD的转换:
1)从HDFS中读取数据,产生RDD1:textFile。
2)RDD1经过转换操作(transformation)转换为RDD2:flatMap。将单词利用空格分隔,易见RDD2与RDD1是窄依赖关系。
3)RDD2经过转换操作(transformation)转换为RDD3:Map。将单词转换为键值对<word,1>,易见RDD3与RDD2是窄依赖关系。
4)RDD3经过转换操作(transformation)转换为RDD4:reduceByKey。将单词混洗,相同单词的value值相加,易见RDD4与RDD3是宽依赖关系
5)RDD4经过行动操作(action)转换为RDD5:saveAsTextFile。行动操作将触发Job提交,将计算结果保存到HDFS,易见RDD5与RDD4是窄依赖关系
WordCount程序只包含一个Job(Job0),Spark DAGScheduler按照RDD之间的依赖关系,将Job划分为2个阶段(Stage00,Stage01)。RDD4、RDD5划分到Stage00,RDD1、RDD2、RDD3划分到Stage01。根据阶段内最后一个RDD的分区数可以确定Stage00包含2个任务
Figure GDA0002489292260000131
Stage01包含3个任务
Figure GDA0002489292260000132
Figure GDA0002489292260000133
假设Spark集群,当前可用的计算资源Exe={ex0,ex1,ex2,ex3},每个计算资源占有两个CPUCore,即能执行两个任务。已知能耗关系策略表,如表(3)所示,已知执行时间关系策略表,如表(4)所示。
Figure GDA0002489292260000141
表(3)已知能耗关系策略表(J)
Figure GDA0002489292260000142
表(4)已知执行时间关系策略表(ms)
调度模块步骤描述如下:
提交Stage01阶段
1)提交executor排序生成ExeQue队列
由公式(10)得到executor的评价{eva0=0.84,eva1=2,eva2=1.17,eva3=1.32}
则ExeQue={ex0,ex2,ex3,ex1}
2)取出最优进程,所有任务排序TaskQue双端队列
取出进程ex0,按照在ex0上执行时间排序,则
Figure GDA0002489292260000143
3)分配任务
先分配
Figure GDA0002489292260000144
到ex0,即
Figure GDA0002489292260000145
再分配
Figure GDA0002489292260000146
到ex0,即
Figure GDA0002489292260000147
任务没有分配完,ex0资源耗尽,取出次优进程ex2。分配
Figure GDA0002489292260000151
到ex2,即
Figure GDA0002489292260000152
4)任务执行完后,由能耗评价模块计算任务的执行时间和能耗,记录数据到MySQL数据库中。
提交Stage00阶段
1)对executor排序生成ExeQue队列
由公式(10)得到executor的评价值{eva0=0.5,eva1=3,eva2=0.85,eva3=1.83}
则ExeQue={ex0,ex2,ex3,ex1}。
2)取出最优进程,所有任务排序TaskQue双端队列
取出进程ex0,按照在ex0上执行时间排序,则
Figure GDA0002489292260000153
3)分配任务
先分配
Figure GDA0002489292260000154
到ex0,即
Figure GDA0002489292260000155
再分配
Figure GDA0002489292260000156
到ex0,即
Figure GDA0002489292260000157
4)任务执行完后,由能耗评价模块计算任务的执行时间和能耗,记录数据到MySQL数据库中。
本例只包含两个阶段,Spark DAGScheduler在所有阶段计算完后,即本Job计算结束。本例中程序只包含一个Job,所以,程序结束。能耗评价模块给出程序的能耗值与运行时间。
任务调度结果:
Stage00阶段,
Figure GDA0002489292260000158
分配到进程ex0
Figure GDA0002489292260000159
分配到进程ex0
Stage01阶段,
Figure GDA00024892922600001510
分配到进程ex0
Figure GDA00024892922600001511
分配到进程ex0
Figure GDA00024892922600001512
分配到进程ex2
可以根据表(3)和表(4)以及公式(8)得到appec=(1+3)+(3+6+10)=23。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

Claims (4)

1.一种基于能耗感知的Spark节能调度方法,其特征在于,包括以下步骤:
首先,构建Spark计算框架下大数据计算能耗模型;
其次,基于该模型建立任务与计算资源的能耗和执行时间关系策略表,通过策略表指导并优化Spark任务调度;
最后,在保证并行计算效率的前提下有效降低计算总能耗;
所述大数据计算能耗模型为:大数据应用App产生的能耗Appec,定义如公式(8)所示
Figure FDA0002491594190000011
大数据计算能耗的目标函数定义如公式(9)所示
Figure FDA0002491594190000012
其中,i∈Z,j∈Z,k∈Z,l∈Z,
Figure FDA0002491594190000013
表示的任务放置方式,|App|表示Spark应用程序App中包含的job的总数,|Jobi|表示Jobi中包含的Stage的总数,|Stageij|表示Stageij中包含的task的总数,p表示集群上所有可用的Executor进程总数,
Figure FDA0002491594190000014
表示Spark应用程序app中,第i个job第j个stage第k个task运行在第l个executor上产生的能耗,
Figure FDA0002491594190000015
表示app应用中第i个job第j个stage第k个task,使用
Figure FDA0002491594190000016
表示任务
Figure FDA0002491594190000017
与资源进程exl之间的关系,定义如公式(5)所示
Figure FDA0002491594190000018
Figure FDA0002491594190000019
分配到exl上时
Figure FDA00024915941900000110
否则
Figure FDA00024915941900000111
所述任务与计算资源的能耗关系策略表:表示Stageij集合和Exe的笛卡尔积的运算结果,Stageij表示Spark应用程序app中第i个job第j个stage;Exe表示集群上所有可用executor进程资源集合,保存了历史的任务在进程上执行的能耗关系和执行时间关系,任意任务
Figure FDA0002491594190000021
在任意进程exl上运行时的能耗
Figure FDA0002491594190000022
初始状态,
Figure FDA0002491594190000023
任务与计算资源的执行时间关系策略表:任意任务
Figure FDA0002491594190000024
在任意进程exl上执行的时间
Figure FDA0002491594190000025
初始状态,
Figure FDA0002491594190000026
根据能耗关系策略表和执行时间关系策略表,对进程排序,组成进程队列ExeQue,当策略表中
Figure FDA0002491594190000027
或者
Figure FDA0002491594190000028
时,表示任务
Figure FDA0002491594190000029
在进程exl上的能耗或执行时间为初始化状态,需要放在队列前面,优先为此进程分配任务;Job表示作业,task表示任务,stage表示阶段,Executor表示进程。
2.根据权利要求1所述的基于能耗感知的Spark节能调度方法,其特征在于,从ExeQue得到当前队头最优的进程exl,根据执行时间关系策略表中执行时间
Figure FDA00024915941900000210
的值,将
Figure FDA00024915941900000211
的任务组成Set0集合,将
Figure FDA00024915941900000212
的任务按照
Figure FDA00024915941900000213
升序组成双端队列TaskQue;
Figure FDA00024915941900000214
则优先分配Set0中的任务到exl,直到exl资源耗尽或
Figure FDA00024915941900000215
若资源耗尽,则从ExeQue中取出次优的exl′继续分配任务;
Figure FDA00024915941900000216
即当前决策表数据无需探测或已分配完,将从TaskQue中头尾依次交替取出任务,分配到exl,直到exl资源耗尽或TaskQue队列为空,若资源耗尽,则从ExeQue中取出次优的exl′继续分配任务,若TaskQue队列为空,则已经将所有任务分配结束。
3.根据权利要求2所述的基于能耗感知的Spark节能调度方法,其特征在于,当执行时间
Figure FDA00024915941900000217
时,需将此任务单独放入集合Set0中,优先进行探测。
4.根据权利要求3所述的基于能耗感知的Spark节能调度方法,其特征在于,在任务运行结束后,记录本次运行时能耗和运行时间,更新能耗关系策略表和执行时间关系策略表,为下次运行相同任务提供决策。
CN201710452338.4A 2017-06-15 2017-06-15 一种基于能耗感知的Spark节能调度方法 Active CN107704069B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710452338.4A CN107704069B (zh) 2017-06-15 2017-06-15 一种基于能耗感知的Spark节能调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710452338.4A CN107704069B (zh) 2017-06-15 2017-06-15 一种基于能耗感知的Spark节能调度方法

Publications (2)

Publication Number Publication Date
CN107704069A CN107704069A (zh) 2018-02-16
CN107704069B true CN107704069B (zh) 2020-08-04

Family

ID=61170182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710452338.4A Active CN107704069B (zh) 2017-06-15 2017-06-15 一种基于能耗感知的Spark节能调度方法

Country Status (1)

Country Link
CN (1) CN107704069B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733195A (zh) * 2018-05-29 2018-11-02 郑州易通众联电子科技有限公司 基于设备运行能效的计算机运行方法及装置
CN109582119B (zh) * 2018-11-28 2022-07-12 重庆邮电大学 基于动态电压频率调整的双层Spark节能调度方法
CN109614210B (zh) * 2018-11-28 2022-11-04 重庆邮电大学 基于能耗感知的Storm大数据节能调度方法
CN109857084B (zh) * 2019-01-18 2020-09-29 湖南大学 一种能耗感知的高性能汽车电子动态调度算法
CN110008013B (zh) * 2019-03-28 2023-08-04 东南大学 一种最小化作业完工时间的Spark任务分配方法
CN110928666B (zh) * 2019-12-09 2022-03-22 湖南大学 一种Spark环境中基于内存优化任务并行度的方法和***
CN111061565B (zh) * 2019-12-12 2023-08-25 湖南大学 一种Spark环境下的两段式流水线任务调度方法及***
CN112532464B (zh) * 2021-02-08 2021-05-11 中国人民解放军国防科技大学 一种跨多数据中心的数据分布式处理加速方法及其***
CN115825736B (zh) * 2023-02-09 2024-01-19 福建明泰嘉讯信息技术有限公司 一种节能设备的能耗综合测试方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102533A (zh) * 2014-06-17 2014-10-15 华中科技大学 一种基于带宽感知的Hadoop调度方法和***
CN106293933A (zh) * 2015-12-29 2017-01-04 北京典赞科技有限公司 一种支持多大数据计算框架的集群资源配置与调度方法
CN106371924A (zh) * 2016-08-29 2017-02-01 东南大学 一种最小化MapReduce集群能耗的任务调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102533A (zh) * 2014-06-17 2014-10-15 华中科技大学 一种基于带宽感知的Hadoop调度方法和***
CN106293933A (zh) * 2015-12-29 2017-01-04 北京典赞科技有限公司 一种支持多大数据计算框架的集群资源配置与调度方法
CN106371924A (zh) * 2016-08-29 2017-02-01 东南大学 一种最小化MapReduce集群能耗的任务调度方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Energy efficiency of data centers - A system-oriented analysis of current development trends;Ralph Hintemann等;《Electronic Goes Green》;20160909;第1-5页 *
一种基于遗传算法的低能耗云计算数据中心资源调度策略;张艳璐;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20151031;I137-7 *
云工作流***中能耗感知的任务调度算法;李学俊等;《模式识别与人工智能》;20160930;第29卷(第9期);第790-796页 *
云环境下能耗感知的公平性提升资源调度策略;薛胜军等;《计算机应用》;20161010;第36卷(第10期);第2692-2697页 *
异构Spark集群下自适应任务调度策略;杨志伟等;《计算机工程》;20160131;第42卷(第1期);第31-35页 *
能耗成本感知的云数据中心资源调度机制研究;黄庆佳;《中国博士学位论文全文数据库(电子期刊)信息科技辑》;20150415;I137-2 *

Also Published As

Publication number Publication date
CN107704069A (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
CN107704069B (zh) 一种基于能耗感知的Spark节能调度方法
Khorasani et al. Scalable simd-efficient graph processing on gpus
He et al. Improving resource utilisation in the cloud environment using multivariate probabilistic models
CN108572873A (zh) 一种解决Spark数据倾斜问题的负载均衡方法及装置
CN103500123B (zh) 异构环境中并行计算调度方法
US8527988B1 (en) Proximity mapping of virtual-machine threads to processors
CN105373432B (zh) 一种基于虚拟资源状态预测的云计算资源调度方法
Casanova et al. On cluster resource allocation for multiple parallel task graphs
Diaz et al. Energy-aware fast scheduling heuristics in heterogeneous computing systems
CN103473120A (zh) 一种基于加速因子的多核实时***任务划分方法
Xiao et al. An energy-aware heuristic scheduling for data-intensive workflows in virtualized datacenters
Hu et al. Improved heuristic job scheduling method to enhance throughput for big data analytics
Yu et al. Fluid: Resource-aware hyperparameter tuning engine
Hu et al. FlowTime: Dynamic scheduling of deadline-aware workflows and ad-hoc jobs
CN108427602A (zh) 一种分布式计算任务的协同调度方法及装置
Fan et al. A heterogeneity-aware data distribution and rebalance method in Hadoop cluster
Than et al. Energy-saving resource allocation in cloud data centers
CN110084507B (zh) 云计算环境下分级感知的科学工作流调度优化方法
Stillwell et al. Dynamic fractional resource scheduling versus batch scheduling
Singh et al. Value and energy optimizing dynamic resource allocation in many-core HPC systems
Shu-Jun et al. Optimization and research of hadoop platform based on fifo scheduler
Iglesias et al. A methodology for online consolidation of tasks through more accurate resource estimations
Xu et al. Hybrid scheduling deadline-constrained multi-DAGs based on reverse HEFT
CN113010316B (zh) 一种基于云计算的多目标群智能算法并行优化方法
Wang et al. Slo-driven task scheduling in mapreduce environments

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
TR01 Transfer of patent right

Effective date of registration: 20230823

Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Dayu Chuangfu Technology Co.,Ltd.

Address before: 400065 Chongwen Road, Nanshan Street, Nanan District, Chongqing

Patentee before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS

TR01 Transfer of patent right