CN110221909B - 一种基于负载预测的Hadoop计算任务推测执行方法 - Google Patents

一种基于负载预测的Hadoop计算任务推测执行方法 Download PDF

Info

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
Application number
CN201910510535.6A
Other languages
English (en)
Other versions
CN110221909A (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.)
Northeastern University China
Original Assignee
Northeastern University China
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 Northeastern University China filed Critical Northeastern University China
Priority to CN201910510535.6A priority Critical patent/CN110221909B/zh
Priority to PCT/CN2019/091269 priority patent/WO2020248227A1/zh
Publication of CN110221909A publication Critical patent/CN110221909A/zh
Application granted granted Critical
Publication of CN110221909B publication Critical patent/CN110221909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload 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计算任务推测执行方法
技术领域
本发明涉及本发明涉及分布式、大数据、云计算领域,具体涉及一种基于负载预测的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)算集群空闲度ρ。
Figure BDA0002093320240000021
其中,ρ代表集群空闲度,List.size代表链表长度,T代表链表尾节点和头节点的时间差。
步骤1.3:根据公式(2)和公式(3)算集群最大备份任务数TotalBackup。
Figure BDA0002093320240000022
Figure BDA0002093320240000023
其中,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
Figure BDA0002093320240000031
其中,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。
Figure BDA0002093320240000032
其中,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
Figure BDA0002093320240000041
步骤2.3.5:根据公式(12)计算Reduce执行任务完成进度progReduce
progReduce=∑i∈{copy,sort,reduce}wi*progi (12)
其中,progReduce代表Reduce执行任务完成进度。
步骤2.3.6:根据公式(13)计算Reduce执行任务完成时间EstimatedEndTime。
Figure BDA0002093320240000042
步骤3:将最大备份任务数与APPmaster设置的备份任务数比较,取最小值作为备份任务数阈值,并设置初始备份任务数为0,初始任务数为0;
步骤4:判断备份任务数是否小于等于备份任务数阈值,若为是,则转到步骤5;若为否,则将备份任务数返回资源管理器;
步骤5:判断任务数是否小于总任务数,若为是,则转到步骤6,若为否,则将备份任务数返回资源管理器;
步骤6:预测备份任务完成时间,具体包括:
步骤6.1:根据公式(14)计算节点Map执行任务的失效率和Reduce任务的失效率。
Figure BDA0002093320240000043
其中,failMap,failReduce分别代表计算节点运行Map任务的失效率和运行Reduce任务的失效率,Mapfail,Reducefail分别代表历史运行失败的Map任务数和历史运行失败的Reduce任务数,sumMap,sumReduce代表计算节点上历史运行的Map任务总数和Reduce任务总数
步骤6.2:通过权值XGboost模型WXG(WeightXGboost)计算各个阶段的权值参数w。
步骤6.3:根据公式(15),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算预测完成时间。
Figure BDA0002093320240000044
其中,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)算集群空闲度ρ。
Figure BDA0002093320240000061
其中,ρ代表集群空闲度,List.size代表链表长度,T代表链表尾节点和头节点的时间差。
步骤1.3:根据公式(2)和公式(3)算集群最大备份任务数TotalBackup。
Figure BDA0002093320240000062
Figure BDA0002093320240000063
其中,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
Figure BDA0002093320240000071
其中,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。
Figure BDA0002093320240000072
其中,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
Figure BDA0002093320240000081
步骤2.3.5:根据公式(12)计算Reduce执行任务完成进度progReduce
progReduce=∑i∈{copy,sort,reduce}wi*progi (12)
其中,progReduce代表Reduce执行任务完成进度。
步骤2.3.6:根据公式(13)计算Reduce执行任务完成时间EstimatedEndTime。
Figure BDA0002093320240000082
步骤3:将最大备份任务数与APPmaster设置的备份任务数比较,取最小值作为备份任务数阈值,并设置初始备份任务数为0,初始任务数为0;
步骤4:判断备份任务数是否小于等于备份任务数阈值,若为是,则转到步骤5;若为否,则将备份任务数返回资源管理器;
步骤5:判断任务数是否小于总任务数,若为是,则转到步骤6,若为否,则将备份任务数返回资源管理器;
步骤6:预测备份任务完成时间,具体包括:
步骤6.1:根据公式(14)计算节点Map执行任务的失效率和Reduce任务的失效率。
Figure BDA0002093320240000083
其中,failMap,failReduce分别代表计算节点运行Map任务的失效率和运行Reduce任务的失效率,Mapfail,Reducefail分别代表历史运行失败的Map任务数和历史运行失败的Reduce任务数,sumMap,sumReduce代表计算节点上历史运行的Map任务总数和Reduce任务总数
步骤6.2:通过权值XGboost模型WXG(WeightXGboost)计算各个阶段的权值参数w。
步骤6.3:根据公式(15),通过剩余完成时间的XGboost模型TXG(TimeXGboost)计算预测完成时间。
Figure BDA0002093320240000091
其中,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)计算集群空闲度ρ;
Figure FDA0003709806750000011
其中,ρ代表集群空闲度,List.size代表链表长度,T代表链表尾节点和头节点的时间差;
步骤1.3:根据公式(2)和公式(3)算集群最大备份任务数TotalBackup;
Figure FDA0003709806750000012
Figure FDA0003709806750000013
其中,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
Figure FDA0003709806750000021
其中,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;
Figure FDA0003709806750000031
其中,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
Figure FDA0003709806750000032
步骤2.3.5:根据公式(12)计算Reduce执行任务完成进度progReduce
progReduce=∑i∈{copy,sort,reduce}wi*progi (12)
其中,progReduce代表Reduce执行任务完成进度;
步骤2.3.6:根据公式(13)计算Reduce执行任务完成时间EstimatedEndTime;
Figure FDA0003709806750000033
3.根据权利要求1所述基于负载预测的Hadoop计算任务推测执行方法,其特征在于,所述预测备份任务完成时间,具体包括:
步骤6.1:根据公式(14)计算节点Map执行任务的失效率和Reduce任务的失效率;
Figure FDA0003709806750000034
其中,failMap,failReduce分别代表计算节点运行Map任务的失效率和运行Reduce任务的失效率,Mapfail,Reducefail分别代表历史运行失败的Map任务数和历史运行失败的Reduce任务数,sumMap,sumReduce代表计算节点上历史运行的Map任务总数和Reduce任务总数
步骤6.2:通过权值XGboost模型WXG计算各个阶段的权值参数w;
步骤6.3:根据公式(15),通过剩余完成时间的XGboost模型TXG计算预测完成时间;
Figure FDA0003709806750000041
其中,runtime代表备份任务预测完成时间;
步骤6.4:根据公式(16)计算备份任务完成时间EstmitedEndTime备份
EstmitedEndTime备份=now+runtime (16)
其中,EstmitedEndTime备份代表备份任务完成时间。
CN201910510535.6A 2019-06-13 2019-06-13 一种基于负载预测的Hadoop计算任务推测执行方法 Active CN110221909B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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