CN110221909B - 一种基于负载预测的Hadoop计算任务推测执行方法 - Google Patents
一种基于负载预测的Hadoop计算任务推测执行方法 Download PDFInfo
- Publication number
- CN110221909B CN110221909B CN201910510535.6A CN201910510535A CN110221909B CN 110221909 B CN110221909 B CN 110221909B CN 201910510535 A CN201910510535 A CN 201910510535A CN 110221909 B CN110221909 B CN 110221909B
- Authority
- CN
- China
- Prior art keywords
- task
- backup
- stage
- completion time
- map
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明提出一种基于负载预测的Hadoop计算任务推测执行方法,包括:资源管理器对备份任务数自适应调整,得到最大备份任务数;预测执行任务完成时间;将最大备份任务数与APPmaster设置的备份任务数比较,取最小值作为备份任务数阈值;判断备份任务数是否小于等于备份任务数阈值;判断任务数是否小于总任务数;预测备份任务完成时间;判断备份任务完成时间和执行任务完成时间大小,确定是否开启备份;本发明保证了当集群计算资源紧张的情况下,备份任务的开启不会对其他作业产生影响;执行任务的完成时间预测算法,有效避免了迟滞任务的误判导致计算资源浪费;备份任务完成时间预测算法,节约计算节点的计算资源,减少作业的完成时间,提高了集群的整体性能。
Description
技术领域
本发明涉及本发明涉及分布式、大数据、云计算领域,具体涉及一种基于负载预测的Hadoop计算任务推测执行方法。
背景技术
计算任务推测执行是指在分布式集群环境下,因为程序bug,负载不均衡或者资源分布不均,造成同一个作业的多个计算任务运行速度不一致,有的计算任务运行速度明显慢于其他计算任务,这些计算任务拖慢了作业的整体执行进度,为了避免这种情况发生,Hadoop利用以空间换时间的思想,会为该计算任务启动备份任务,让该备份与原始任务同时运行,哪个先运行完,则使用它的结果。当AppMaster检测到Map计算任务或Reduce计算任务中运行最慢的任务的剩余完成时间大于已完成任务的平均执行时间,则会为该任务启动备份任务。
当前的Hadoop平台下,为了加速用户作业的完成,Hadoop平台会采用以时间换空间的策略,对迟滞任务开启备份来加速作业的完成进度。当前Hadoop中任务推测执行机制并没有考虑计算节点负载变化对任务执行进度的影响,以恒定的速率来反映任务的执行情况,也没有考虑当集群计算资源紧缺时,任务推测执行机制对其他做作业带来的影响。在Hadoop平台中,任务推测执行对作业完成时间有着重要影响,如何优化任务推测执行是优化Hadoop平台的关键步骤之一。
发明内容
基于以上技术问题,本发明所述的一种基于负载预测的Hadoop计算任务推测执行方法,具体包括三部分:备份任务数自适应调整算法部分,执行任务完成时间预测算法部分,备份任务完成时间预测算法部分。备份任务数自适应调整算法,AppMaster感知当前的集群负载状态,对备份任务的总数量做出调整,减少备份任务对其他作业的干扰,避免过多的备份任务产生资源抢占。执行任务完成时间预测算法,通过历史数据建立起任务完成时间与计算节点负载,任务进度的XGboost模型,每个运行的任务根据XGboost模型实时计算出任务的完成时间,并且将信息发送给AppMaster。备份任务完成时间预测算法,利用计算节点的负载通过XGboost模型预测备份任务的完成时间,选择合理的节点来开启备份任务,减少作业的完成时间。
一种基于负载预测的Hadoop计算任务推测执行方法,具体包括如下步骤:
步骤1:在作业提交后计算总任务数,且资源管理器对备份任务数自适应调整,得到最大备份任务数,具体包括步骤1.1~步骤1.3:
步骤1.1:针对最近一段时间T,将空闲计算节点向资源管理器申请计算资源的时间点保存到链表中;
步骤1.2:通过集群空闲度感知方法计算集群空闲度ρ,具体包括:
步骤1.2.1:判断链表长度List.sise是否大于阈值Lmax。
步骤1.2.1.1:当List.sise>Lmax时,判断链表尾节点和头节点的时间差T是否大于阈值Tmax。
步骤1.2.1.1.1:当T>Tmax时,移除头节点,返回步骤1.2.1。
步骤1.2.1.1.2:当T≤Tmax时,跳到步骤1.2.2。
步骤1.2.1.2:当List.sise≤Lmax时,继续存储计算节点向资源管理器申请计算资源的时间点,返回步骤1.2.1。
步骤1.2.2:根据公式(1)算集群空闲度ρ。
其中,ρ代表集群空闲度,List.size代表链表长度,T代表链表尾节点和头节点的时间差。
步骤1.3:根据公式(2)和公式(3)算集群最大备份任务数TotalBackup。
其中,ts代表一个计算周期,TotalBackup代表整个集群能开启的最大备份任务数,τ代表中间变量,N代表任务总数。
步骤2:预测执行任务完成时间,具体包括:
步骤2.1:构建权值XGboost模型WXG(WeightXGboost)和剩余完成时间的XGboost模型TXG(TimeXGboost)。
步骤2.2:Map执行任务由map和sort两个阶段组成,预测Map执行任务完成时间方法,具体包括:
步骤2.2.1:输入矩阵x1[各阶段的负载信息]和x2[节点负载预测信息,当前阶段剩余的数据量]。
步骤2.2.2:根据公式(4),通过权值XGboost模型WXG(WeightXGboost)计算map阶段与sort阶段的权值wmap,wsort。
wmap,wsort=WXG(x1) (4)
其中,wmap代表map阶段权值,wsort代表sort阶段权值,x1代表各阶段负载信息,WXG(x)代表权值XGboost模型。
步骤2.2.3:根据公式(5),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算每个阶段剩余完成时间Tremain。
Tremain=TXG(x2) (5)
其中,Tremain代表各阶段剩余完成时间,x2代表节点负载预测信息和当前阶段剩余的数据量,TXG(x)代表剩余完成时间的XGboost模型。
步骤2.2.4:根据公式(6)计算每个阶段的进度progm。
其中,progm代表每个阶段的进度,runtime代表每个阶段已经运行的时间。
步骤2.2.5:根据公式(7)计算Map执行任务完成进度progMap。
progMap=∑i∈{map,sort}wi*progi (7)
其中,progMap代表Map执行任务完成进度,wi代表每个阶段的权值,progi代表每个阶段进度。
步骤2.2.6:根据公式(8)计算Map执行任务完成时间EstimatedEndTime。
其中,EstimatedEndTime代表Map执行任务完成时间,now表示当前时刻,starttime表示任务开始时刻。
步骤2.3Reduce执行任务分为copy,sort,reduce三个阶段,预测Reduce执行任务完成时间,具体包括:
步骤2.3.1:输入矩阵x1[各阶段的负载信息],x2[节点负载预测信息,当前阶段剩余的数据量]。
步骤2.3.2:根据公式(9),通过权值XGboost模型WXG(WeightXGboost)计算copy,sort,reduce三个阶段的权值wcopy,wsort,wreduce。
wcopy,wsort,wreduce=WXG(x1) (9)
其中,wcopy代表copy阶段权值,wsort代表sort阶段权值,wreduce代表reduce阶段权值。
步骤2.3.3:根据公式(10),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算每个阶段剩余完成时间Tremain。
Tremain=TXG(x2) (10)
步骤2.3.4:根据公式(11)计算每个阶段的进度progm。
步骤2.3.5:根据公式(12)计算Reduce执行任务完成进度progReduce。
progReduce=∑i∈{copy,sort,reduce}wi*progi (12)
其中,progReduce代表Reduce执行任务完成进度。
步骤2.3.6:根据公式(13)计算Reduce执行任务完成时间EstimatedEndTime。
步骤3:将最大备份任务数与APPmaster设置的备份任务数比较,取最小值作为备份任务数阈值,并设置初始备份任务数为0,初始任务数为0;
步骤4:判断备份任务数是否小于等于备份任务数阈值,若为是,则转到步骤5;若为否,则将备份任务数返回资源管理器;
步骤5:判断任务数是否小于总任务数,若为是,则转到步骤6,若为否,则将备份任务数返回资源管理器;
步骤6:预测备份任务完成时间,具体包括:
步骤6.1:根据公式(14)计算节点Map执行任务的失效率和Reduce任务的失效率。
其中,failMap,failReduce分别代表计算节点运行Map任务的失效率和运行Reduce任务的失效率,Mapfail,Reducefail分别代表历史运行失败的Map任务数和历史运行失败的Reduce任务数,sumMap,sumReduce代表计算节点上历史运行的Map任务总数和Reduce任务总数
步骤6.2:通过权值XGboost模型WXG(WeightXGboost)计算各个阶段的权值参数w。
步骤6.3:根据公式(15),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算预测完成时间。
其中,runtime代表备份任务预测完成时间;
步骤6.4:根据公式(16)计算备份任务完成时间EstmiteEndTime备份。
EstmiteEndTime备份=now+runtime (16)
其中,EstmiteEndTime备份代表备份任务完成时间。
步骤7:判断备份任务完成时间EstmiteEndTime备份和执行任务完成时间EstmiteEndTime大小,当EstmiteEndTime备份≥EstmitedEndTime时,不开启备份,任务数加1,转到步骤4;当EstmitedEndTime备份<EstmitedEndTime时,开启备份,备份任务数加1,任务数加1,转到步骤4。
有益技术效果:
本发明提出一种基于负载预测的Hadoop计算任务推测执行方法,备份任务数自适应调整算法,根据集群的负载状态实时调整备份任务数量的开启,保证了当集群计算资源紧张的情况下,备份任务的开启不会对其他作业产生影响。执行任务的完成时间预测,利用XGboost算法分别对Map执行任务和Reduce执行任务的完成时间做出预测,从而更加准确的识别迟滞任务,有效避免了迟滞任务的误判导致计算资源浪费。备份任务完成时间预测算法,选择合理的节点来开启备份任务,节约计算节点的计算资源,减少作业的完成时间,提高了集群的整体性能。
附图说明
图1本发明实施例的一种基于负载预测的Hadoop计算任务推测执行方法流程图;
图2本发明实施例的基于负载预测的Hadoop推测执行IPO图;
图3本发明实施例的FIFO作业完成时间对比图;
图4本发明实施例的Capacity作业完成时间对比图;
图5本发明实施例的Fair-modified作业完成时间对比图;
图6本发明实施例的Fair作业完成时间对比图。
具体实施方式
下面结合附图和具体实施实例对发明做进一步说明,本发明为一种基于负载预测的Hadoop计算任务推测执行方法,基于负载预测的Hadoop计算任务推测执行IPO如图1所示,通过历史数据建立起任务完成时间与计算节点负载,任务进度的XGboost模型,每个运行的任务根据XGboost模型实时计算出任务的完成时间,并且将信息发送给AppMaster,资源管理器根据当前的集群负载,通过自适应备份任务数调整算法实时计算当前能够进行任务推测的最大任务数量供AppMaster进行备份任务开启的判断,根据预测的备份任务完成时间,判断是否对该任务开启备份,选择合理的节点来开启备份任务,减少作业的完成时间。
本系统在Hadoop平台上用20台同构的机器进行试验,其中1台为master,19台为slave,配置了三个用户队列a,b,c,分别占用集群30%,30%,40%的计算资源,Hadoop集群搭建的信息为Hadoop版本2.6,Java版本1.7,操作系统Centos7,编译工具Maven,开发工具Intelij,节点个数为19,用户队列为root.a,root.b,root.c。
本系统实施节点配置参数:CPU核数为8核,CPU主频2.2GHz,内存类型DDR3-1333ECC,内存容量8GB,硬盘类型为15000转SAS硬盘,硬盘容量300GB,带宽1000Mbps。
一种基于负载预测的Hadoop计算任务推测执行方法,如图1所示,具体包括如下步骤:
步骤1:在作业提交后计算总任务数,且资源管理器对备份任务数自适应调整,得到最大备份任务数,具体包括:
步骤1.1:针对最近一段时间T,将空闲计算节点向资源管理器申请计算资源的时间点保存到链表中;
步骤1.2:通过集群空闲度感知方法计算集群空闲度ρ,具体包括:
步骤1.2.1:判断链表长度List.sise是否大于阈值Lmax。
步骤1.2.1.1:当List.sise>Lmax时,判断链表尾节点和头节点的时间差T是否大于阈值Tmax。
步骤1.2.1.1.1:当T>Tmax时,移除头节点,返回步骤1.2.1。
步骤1.2.1.1.2:当T≤Tmax时,跳到步骤1.2.2。
步骤1.2.1.2:当List.sise≤Lmax时,继续存储计算节点向资源管理器申请计算资源的时间点,返回步骤1.2.1。
步骤1.2.2:根据公式(1)算集群空闲度ρ。
其中,ρ代表集群空闲度,List.size代表链表长度,T代表链表尾节点和头节点的时间差。
步骤1.3:根据公式(2)和公式(3)算集群最大备份任务数TotalBackup。
其中,ts代表一个计算周期,TotalBackup代表整个集群能开启的最大备份任务数,τ代表中间变量,N代表任务总数。
步骤2:预测执行任务完成时间,具体包括:
步骤2.1:构建权值XGboost模型WXG(WeightXGboost)和剩余完成时间的XGboost模型TXG(TimeXGboost)。
步骤2.2:Map执行任务由map和sort两个阶段组成,预测Map执行任务完成时间方法,具体包括:
步骤2.2.1:输入矩阵x1[各阶段的负载信息]和x2[节点负载预测信息,当前阶段剩余的数据量]。
步骤2.2.2:根据公式(4),通过权值XGboost模型WXG(WeightXGboost)计算map阶段与sort阶段的权值wmap,wsort。
wmap,wsort=WXG(x1) (4)
其中,wmap代表map阶段权值,wsort代表sort阶段权值,x1代表各阶段负载信息,WXG(x)代表权值XGboost模型。
步骤2.2.3:根据公式(5),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算每个阶段剩余完成时间Tremain。
Tremain=TXG(x2) (5)
其中,Tremain代表各阶段剩余完成时间,x2代表节点负载预测信息和当前阶段剩余的数据量,TXG(x)代表剩余完成时间的XGboost模型。
步骤2.2.4:根据公式(6)计算每个阶段的进度progm。
其中,progm代表每个阶段的进度,runtime代表每个阶段已经运行的时间。
步骤2.2.5:根据公式(7)计算Map执行任务完成进度progMap。
progMap=∑i∈{map,sort}wi*progi (7)
其中,progMap代表Map执行任务完成进度,wi代表每个阶段的权值,progi代表每个阶段进度。
步骤2.2.6:根据公式(8)计算Map执行任务完成时间EstimatedEndTime。
其中,EstimatedEndTime代表Map执行任务完成时间,now表示当前时刻,starttime表示任务开始时刻。
步骤2.3Reduce执行任务分为copy,sort,reduce三个阶段,预测Reduce执行任务完成时间,具体包括:
步骤2.3.1:输入矩阵x1[各阶段的负载信息],x2[节点负载预测信息,当前阶段剩余的数据量]。
步骤2.3.2:根据公式(9),通过权值XGboost模型WXG(WeightXGboost)计算copy,sort,reduce三个阶段的权值wcopy,wsort,wreduce。
wcopy,wsort,wreduce=WXG(x1) (9)
其中,wcopy代表copy阶段权值,wsort代表sort阶段权值,wreduce代表reduce阶段权值。
步骤2.3.3:根据公式(10),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算每个阶段剩余完成时间Tremain。
Tremain=TXG(x2) (10)
步骤2.3.4:根据公式(11)计算每个阶段的进度progm。
步骤2.3.5:根据公式(12)计算Reduce执行任务完成进度progReduce。
progReduce=∑i∈{copy,sort,reduce}wi*progi (12)
其中,progReduce代表Reduce执行任务完成进度。
步骤2.3.6:根据公式(13)计算Reduce执行任务完成时间EstimatedEndTime。
步骤3:将最大备份任务数与APPmaster设置的备份任务数比较,取最小值作为备份任务数阈值,并设置初始备份任务数为0,初始任务数为0;
步骤4:判断备份任务数是否小于等于备份任务数阈值,若为是,则转到步骤5;若为否,则将备份任务数返回资源管理器;
步骤5:判断任务数是否小于总任务数,若为是,则转到步骤6,若为否,则将备份任务数返回资源管理器;
步骤6:预测备份任务完成时间,具体包括:
步骤6.1:根据公式(14)计算节点Map执行任务的失效率和Reduce任务的失效率。
其中,failMap,failReduce分别代表计算节点运行Map任务的失效率和运行Reduce任务的失效率,Mapfail,Reducefail分别代表历史运行失败的Map任务数和历史运行失败的Reduce任务数,sumMap,sumReduce代表计算节点上历史运行的Map任务总数和Reduce任务总数
步骤6.2:通过权值XGboost模型WXG(WeightXGboost)计算各个阶段的权值参数w。
步骤6.3:根据公式(15),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算预测完成时间。
其中,runtime代表备份任务预测完成时间;
步骤6.4:根据公式(16)计算备份任务完成时间EstmitedEndTime备份。
EstmitedEndTime备份=now+runtime (16)
其中,EstmitedEndTime备份代表备份任务完成时间。
步骤7:判断备份任务完成时间EstmitedEndTime备份和执行任务完成时间EstmitedEndTime大小,当EstmitedEndTime备份≥EstmitedEndTime时,不开启备份,任务数加1,转到步骤4;;当EstmitedEndTime备份<EstmitedEndTime时,开启备份,备份任务数加1,任务数加1,转到步骤4。
过对比各个作业在调度中不开启推测执行,开启LATE的推测执行,开启本发明的基于负载预测的Hadoop计算任务推测执行(LPS)进行对比,分别绘制了各个调度器下各个作业集的完成时间对比图,结果如图3-6所示,得出以下结论:
(1)负载的变化对任务完成时间有影响,通过图3,图4,图5,图6可知,当作业规模较小时,LATE推测执行和LPS推测执行都能减少任务的完成时间,而当作业规模变大,任务执行速度明显受到计算节点性能的影响,LPS推测执行可以实时依据负载对任务完成时间进行预测,对迟滞任务的识别准确率高于LATE推测执行,所以当负载变高时,LPS推测执行机制仍然可以有效减少作业的完成时间。
(2)备份任务过多会降低集群性能,由图3,图4,图5,图6可知,当任务量变大时,开启LATE推测执行反而会增加原有的作业完成时间,但LPS推测执行考虑了负载的变化带来的备份任务数变化,所以当集群负载较高时,依然可以减少作业集的完成时间。
本发明过程是在计算节点中完成的,根据计算节点的负载预测任务的完成时间,然后将完成时间传入AppMaster,AppMaster中有已经备份的任务数,如图2所示,然后和资源管理器自适应调整算法传来的可备份任务数进行比较,若小于,足可以继续备份。再去计算备份任务的完成时间,如果预测的完成时间大于备份任务完成时间,则开启备份。
综上所述,本章提出的基于负载预测的Hadoop计算任务推测执行方法相较于Hadoop原生的LATE推测执行方法能够更加准确的找到迟滞任务,并且能够根据集群负载调整备份任务数的开启,有效减少了作业完成时间的同时避免了备份任务过多而产生的资源竞争。
Claims (3)
1.一种基于负载预测的Hadoop计算任务推测执行方法,其特征在于,具体步骤如下:
步骤1:在作业提交后计算总任务数,且资源管理器对备份任务数自适应调整,得到最大备份任务数,具体包括步骤1.1~步骤1.3:
步骤1.1:针对最近一段时间T,将空闲计算节点向资源管理器申请计算资源的时间点保存到链表中;
步骤1.2:通过集群空闲度感知方法计算集群空闲度ρ,具体包括:
步骤1.2.1:判断链表长度List.sise是否大于阈值Lmax;
步骤1.2.1.1:当List.sise>Lmax时,判断链表尾节点和头节点的时间差T是否大于阈值Tmax;
步骤1.2.1.1.1:当T>Tmax时,移除头节点,返回步骤1.2.1;
步骤1.2.1.1.2:当T≤Tmax时,跳到步骤1.2.2;
步骤1.2.1.2:当List.sise≤Lmax时,继续存储计算节点向资源管理器申请计算资源的时间点,返回步骤1.2.1;
步骤1.2.2:根据公式(1)计算集群空闲度ρ;
其中,ρ代表集群空闲度,List.size代表链表长度,T代表链表尾节点和头节点的时间差;
步骤1.3:根据公式(2)和公式(3)算集群最大备份任务数TotalBackup;
其中,ts代表一个计算周期,TotalBackup代表整个集群能开启的最大备份任务数,τ代表中间变量,N代表任务总数;
步骤2:预测执行任务完成时间;
步骤3:将最大备份任务数与APPmaster设置的备份任务数比较,取最小值作为备份任务数阈值,并设置初始备份任务数为0,初始任务数为0;
步骤4:判断备份任务数是否小于等于备份任务数阈值,若为是,则转到步骤5;若为否,
则将备份任务数返回资源管理器;
步骤5:判断任务数是否小于总任务数,若为是,则转到步骤6,若为否,则将备份任务数返回资源管理器;
步骤6:预测备份任务完成时间;
步骤7:判断备份任务完成时间EstmitedEndTime备份和执行任务完成时间EstmitedEndTime大小,当EstmitedEndTime备份≥EstmitedEndTime时,不开启备份,任务数加1,转到步骤4;当EstmitedEndTime备份<EstmitedEndTime时,开启备份,备份任务数加1,任务数加1,转到步骤4。
2.根据权利要求1所述基于负载预测的Hadoop计算任务推测执行方法,其特征在于,所述预测执行任务完成时间,具体包括:
步骤2.1:构建权值XGboost模型WXG和剩余完成时间的XGboost模型TXG;
步骤2.2:Map执行任务由map和sort两个阶段组成,预测Map执行任务完成时间方法,具体包括:
步骤2.2.1:输入矩阵x1[各阶段的负载信息]和x2[节点负载预测信息,当前阶段剩余的数据量];
步骤2.2.2:根据公式(4),通过权值XGboost模型WXG计算map阶段与sort阶段的权值wmap,wsort;
wmap,wsort=WXG(x1) (4)
其中,wmap代表map阶段权值,wsort代表sort阶段权值,x1代表各阶段负载信息,WXG(x)代表权值XGboost模型;
步骤2.2.3:根据公式(5),通过剩余完成时间的XGboost模型TXG计算每个阶段剩余完成时间Tremain;
Tremain=TXG(x2) (5)
其中,Tremain代表各阶段剩余完成时间,x2代表节点负载预测信息和当前阶段剩余的数据量,TXG(x)代表剩余完成时间的XGboost模型;
步骤2.2.4:根据公式(6)计算每个阶段的进度progm;
其中,progm代表每个阶段的进度,runtime代表每个阶段已经运行的时间;
步骤2.2.5:根据公式(7)计算Map执行任务完成进度progMap;
progMap=∑i∈{map,sort}wi*progi (7)
其中,progMap代表Map执行任务完成进度,wi代表每个阶段的权值,progi代表每个阶段进度;
步骤2.2.6:根据公式(8)计算Map执行任务完成时间EstimatedEndTime;
其中,EstimatedEndTime代表Map执行任务完成时间,now表示当前时刻,starttime表示任务开始时刻;
步骤2.3:Reduce执行任务分为copy,sort,reduce三个阶段,预测Reduce执行任务完成时间,具体包括:
步骤2.3.1:输入矩阵x1[各阶段的负载信息],x2[节点负载预测信息,当前阶段剩余的数据量];
步骤2.3.2:根据公式(9),通过权值XGboost模型WXG计算copy,sort,reduce三个阶段的权值wcopy,wsort,wreduce;
wcopy,wsort,wreduce=WXG(x1) (9)
其中,wcopy代表copy阶段权值,wsort代表sort阶段权值,wreduce代表reduce阶段权值;
步骤2.3.3:根据公式(10),通过剩余完成时间的XGboost模型TXG计算每个阶段剩余完成时间Tremain;
Tremain=TXG(x2) (10)
步骤2.3.4:根据公式(11)计算每个阶段的进度progm;
步骤2.3.5:根据公式(12)计算Reduce执行任务完成进度progReduce;
progReduce=∑i∈{copy,sort,reduce}wi*progi (12)
其中,progReduce代表Reduce执行任务完成进度;
步骤2.3.6:根据公式(13)计算Reduce执行任务完成时间EstimatedEndTime;
3.根据权利要求1所述基于负载预测的Hadoop计算任务推测执行方法,其特征在于,所述预测备份任务完成时间,具体包括:
步骤6.1:根据公式(14)计算节点Map执行任务的失效率和Reduce任务的失效率;
其中,failMap,failReduce分别代表计算节点运行Map任务的失效率和运行Reduce任务的失效率,Mapfail,Reducefail分别代表历史运行失败的Map任务数和历史运行失败的Reduce任务数,sumMap,sumReduce代表计算节点上历史运行的Map任务总数和Reduce任务总数
步骤6.2:通过权值XGboost模型WXG计算各个阶段的权值参数w;
步骤6.3:根据公式(15),通过剩余完成时间的XGboost模型TXG计算预测完成时间;
其中,runtime代表备份任务预测完成时间;
步骤6.4:根据公式(16)计算备份任务完成时间EstmitedEndTime备份;
EstmitedEndTime备份=now+runtime (16)
其中,EstmitedEndTime备份代表备份任务完成时间。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510535.6A CN110221909B (zh) | 2019-06-13 | 2019-06-13 | 一种基于负载预测的Hadoop计算任务推测执行方法 |
PCT/CN2019/091269 WO2020248227A1 (zh) | 2019-06-13 | 2019-06-14 | 一种基于负载预测的Hadoop计算任务推测执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510535.6A CN110221909B (zh) | 2019-06-13 | 2019-06-13 | 一种基于负载预测的Hadoop计算任务推测执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110221909A CN110221909A (zh) | 2019-09-10 |
CN110221909B true CN110221909B (zh) | 2023-01-17 |
Family
ID=67816959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910510535.6A Active CN110221909B (zh) | 2019-06-13 | 2019-06-13 | 一种基于负载预测的Hadoop计算任务推测执行方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110221909B (zh) |
WO (1) | WO2020248227A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094155B (zh) * | 2019-12-23 | 2023-07-18 | 中国移动通信集团辽宁有限公司 | Hadoop平台下的任务调度方法及装置 |
CN111382013A (zh) * | 2020-03-20 | 2020-07-07 | 平安科技(深圳)有限公司 | 一种自动调整定时备份作业发起时间的方法和装置 |
CN112328430A (zh) * | 2020-11-03 | 2021-02-05 | 燕山大学 | 一种用于降低数据中心网络系统运行成本的方法 |
CN112506619B (zh) * | 2020-12-18 | 2023-08-04 | 北京百度网讯科技有限公司 | 作业处理方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239194A (zh) * | 2014-09-12 | 2014-12-24 | 上海交通大学 | 基于bp神经网络的任务完成时间预测方法 |
CN105302647A (zh) * | 2015-11-06 | 2016-02-03 | 南京信息工程大学 | 一种MapReduce中备份任务推测执行策略的优化方案 |
CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440167B (zh) * | 2013-09-04 | 2016-06-29 | 福州大学 | Hadoop多作业环境下自学习反馈的任务调度方法 |
US9857974B2 (en) * | 2013-10-03 | 2018-01-02 | International Business Machines Corporation | Session execution decision |
US9672064B2 (en) * | 2015-07-13 | 2017-06-06 | Palo Alto Research Center Incorporated | Dynamically adaptive, resource aware system and method for scheduling |
CN105138405B (zh) * | 2015-08-06 | 2019-05-14 | 湖南大学 | 基于待释放资源列表的MapReduce任务推测执行方法和装置 |
CN106168912B (zh) * | 2016-07-28 | 2019-04-16 | 重庆邮电大学 | 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法 |
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 |
US10515089B2 (en) * | 2017-05-08 | 2019-12-24 | Salesforce.Com, Inc. | Pseudo-synchronous processing by an analytic query and build cluster |
-
2019
- 2019-06-13 CN CN201910510535.6A patent/CN110221909B/zh active Active
- 2019-06-14 WO PCT/CN2019/091269 patent/WO2020248227A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239194A (zh) * | 2014-09-12 | 2014-12-24 | 上海交通大学 | 基于bp神经网络的任务完成时间预测方法 |
CN105302647A (zh) * | 2015-11-06 | 2016-02-03 | 南京信息工程大学 | 一种MapReduce中备份任务推测执行策略的优化方案 |
CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
Non-Patent Citations (1)
Title |
---|
Hadoop平台下改进的推测任务调度算法;陈明丽等;《传感器与微系统》;20170220(第02期);第134-137页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020248227A1 (zh) | 2020-12-17 |
CN110221909A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221909B (zh) | 一种基于负载预测的Hadoop计算任务推测执行方法 | |
CN110413391B (zh) | 基于容器集群的深度学习任务服务质量保证方法和系统 | |
CN108958916B (zh) | 一种移动边缘环境下工作流卸载优化方法 | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
WO2023184939A1 (zh) | 基于深度强化学习的云数据中心自适应高效资源分配方法 | |
US8924976B2 (en) | Task scheduling method and apparatus | |
US20170206111A1 (en) | Managing processing capacity provided to threads based upon load prediction | |
Dutot et al. | Towards energy budget control in HPC | |
CN104199739B (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
JP2000347883A (ja) | 仮想計算機装置 | |
CN110351348B (zh) | 一种基于dqn的云计算资源调度优化方法 | |
CN110262897B (zh) | 一种基于负载预测的Hadoop计算任务初始分配方法 | |
CN107341041B (zh) | 基于优先队列的云任务多维约束回填调度方法 | |
JP6778130B2 (ja) | 仮想計算機システムおよびそのリソース割当て方法 | |
EP3278220A1 (en) | Power aware scheduling and power manager | |
CN115878260A (zh) | 一种低碳自适应云主机任务调度系统 | |
CN113032102A (zh) | 资源重调度方法、装置、设备和介质 | |
El Ghor et al. | Energy efficient scheduler of aperiodic jobs for real-time embedded systems | |
JP6620609B2 (ja) | 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置 | |
JP2012181578A (ja) | 更新制御装置及びプログラム | |
JP2021504777A5 (zh) | ||
CN107589985B (zh) | 一种面向大数据平台的两阶段作业调度方法及系统 | |
US20220083121A1 (en) | Adaptive cpu power limit tuning | |
KR20090116184A (ko) | 정보처리장치 및 그 동작주기 변경방법 |
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 |