本发明专利技术公开了一种异构环境下基于待释放资源列表的MapReduce任务推测执行方法和装置,描述了在作业的执行过程中,空闲资源向主节点提交任务请求。如果当前作业存在沿未开始运行的任务,则从尚未开始运行的任务中选择一个任务在空闲资源上执行,算法结束。否则通过记录的作业执行信息,生成作业的慢任务列表。如果慢任务列表大小为0,则表明没有慢任务,不需要进行推测执行,算法结束。否则继续生成待释放资源列表。假设慢任务列表大小为N,待释放资源列表大小为M,根据本发明专利技术的备份任务选择算法,选择任务M分配给申请任务的资源,算法结束。本发明专利技术相比传统推测执行算法能够找到使慢任务更快完成的资源,从而提高执行效率。
【技术实现步骤摘要】
本专利技术涉及云计算
,特别是涉及一种异构环境下基于待释放资源列表的 MapReduce任务推测执行方法和装置。
技术介绍
近年来,大数据平台Hadoop技术应用日趋成熟。Hadoop是在云计算与大数据的背 景下诞生的开源分布计算平台,它借鉴了 Google的GFS和MapReduce技术,使开发者可以 轻松开发和运行处理海量数据的应用程序。 任务备份是各种计算系统中最常见的容错调度技术。在Hadoop中,与任务备份相 关的问题是任务推测执行机制。在分布式集群环境下,因为程序Bug、负载不均衡或者资源 分布不均等原因,会造成同一个作业的多个任务之间运行速度不一致。有些任务的运行速 度可能明显慢于其他任务(比如一个作业的某个任务进度只有50%,而其他任务已经运行 完毕),则这些任务会拖慢作业的整体执行进度。 为了避免这种情况发生,Hadoop采用了推测执行机制。它根据一定的法则推测出 "拖后腿"的任务,并为这样的任务启动一个备份任务,让该任务与原始任务同时处理同一 份数据,并最终选用最先成功运行完成任务的计算结果作为最终结果。现有的Hadoop推测 执行算法主要有LATE调度算法,SAMR调度算法以及Had 〇〇p2. X的推测执行算法。这些推 测执行算法都是在出现一个空闲资源提出任务请求后,然后按照一定的策略从慢任务列表 中选择一个慢任务在该资源上进行备份执行。但这种方法的缺点是,当前提交任务请求的 资源不一定是能使慢任务最快完成的资源。因为在异构环境下,不同节点的任务处理速度 是不一样的。很大可能这个资源之后出现的空闲资源,反而能使慢任务更快完成。
技术实现思路
本专利技术的目的就是要克服现有技术的不足,提供一种基于待释放资源列表的 MapReduce任务推测执行方法和装置,能够找到使慢任务更快完成的资源。 为解决以上技术问题,本专利技术所采用的技术方案是:一种基于待释放资源列表的 MapReduce任务推测执行方法,所述方法包括: 作业运行过程中出现空闲资源,该空闲资源向主节点提交任务请求; 判断作业是否存在尚未运行的任务,如果当前作业还有尚未开始运行的任务,则 从尚未开始运行的任务中选择一个任务在空闲资源上执行,否则,继续往下执行; 获取需要的作业运行时信息; 寻找慢任务,获取所有慢任务的剩余完成时间EstimatedTaskTimeLeft,按剩余完 成时间由大到小对慢任务列表进行排序,生成慢任务列表CandidateTasks;如慢任务 列表大小为0,即不存在慢任务,则不需要进行推测执行,否则,继续往下执行; 获取所有正在运行任务所在资源的待释放时间EstimatedNodeTimeLeft,获取备 份任务在待释放资源和已释放资源上执行需要的最终完成时间CandidateTaskTime,将获 取的最终完成时间CandidateTaskTime由小到大进行排序,并只保留总时间小于已释放资 源执行完成备份任务所需时间的待释放资源,生成待释放资源列表CandidateNodes ; 对慢任务列表CandidateTasks 和待释放资源列表CandidateNodes 进行判 断,如果M〈 = N,且慢任务列表中第M个慢任务的剩余完成时间estimatedTaskTimeLeft 大于备份任务在待释放资源列表的第M个资源上的最终完成时间candidateTaskTime 时,贝lJ选择慢任务candidateTasks在该申请任务的空闲资源上进行备份执行,否则不 为该空闲资源分配慢任务。 进一步的,所述慢任务采用以下公式进行筛选: FinishedTaskProgressRateMean-TaskProgressRate > (1) FinishedTaskProgressRateStd^JobSlowTaskThreshold 其中: FinishedTaskProgressRateMean :表示作业已完成任务的平均任务进度增长率; TaskProgressRate :表示任务进度增长率; FinishedTaskProgressRateStd :表示作业已完成任务的任务进度增长率的标准 差; JobSlowTaskThreshold :用于限定慢任务个数的参数。 进一步的,所述备份任务在待释放资源和已释放资源上执行需要的最终完成时间 CandidateTaskTime获取方法如下: CandidateTaskTime = CandidateTaskExecuteTime+EstimatedNodeTimeLeft 其中: CandidateTaskExecuteTime :表示备份任务在资源上的执行完成时间; EstimatedNodeTimeLeft :表示资源的待释放时间; 故,备份任务在已释放资源的最终完成所需的时间就为CandidateTaskExecuteTi me,EstimatedNodeTimeLeft = 0,艮P CandidateTaskTime = CandidateTaskExecuteTime ; 而备份任务在待释放资源上执行需要的最终完成时间要多加一个等待资源释放 的时间,艮P CandidateTaskTime = CandidateTaskExecuteTime+EstimatedNodeTimeLefto 进一步的,备份任务在资源上的执行完成时间CandidateTaskExecuteTime获取 方式为: CandidateTaskExecuteTime = 1.0 /NodeProgressRate ; 其中:NodeProgressRate :表示资源所在节点执行任务的任务进度增长率。 相应的,本专利技术还提出了一种基于待释放资源列表的MapReduce任务推测执行装 置,包括:作业信息记录单元、慢任务列表生成单元、待释放资源列表生成单元以及备份任 务选择单元; 所述作业信息记录单元,用于在作业运行过程中,获取并记录作业的运行时信息, 通过记录的作业信息,可用于生成慢任务列表和待释放资源列表; 所述慢任务列表生成单元,用于从正在运行的任务中识别出会拖慢整个 作业运行进度的慢任务,从作业信息记录单元中获取所有慢任务的剩余完成时间 EstimatedTaskTimeLeft,并将这些慢任务按从慢到快的顺序进行排列,生成慢任务列表 CandidateTasks; 所述待释放资源列表生成单元,用于从正在运行的任务中识别出即将运行结束的 任务,从作业信息记录单元中获取任务所在资源的待释放时间EstimatedNodeTimeLeft,获 取备份任务在待释放资源和已释放资源上执行需要的最终完成时间CandidateTaskTime, 将获取的最终完成时间CandidateTaskTime由小到大进行排序,并只保留总时间 小于已释放资源执行完成备份任务所需时间的待释放资源,生成待释放资源列表 CandidateNodes; 备份任务选择单元,用于对慢任务列表CandidateTasks和待释放资源列表 CandidateNodes进行判断,如果M〈 = N,且慢任务列表中第M个慢任务的剩余完成时间 estimatedTaskTime本文档来自技高网...
【技术保护点】
一种基于待释放资源列表的MapReduce任务推测执行方法,其特征在于,所述方法包括:作业运行过程中出现空闲资源,该空闲资源向主节点提交任务请求;判断作业是否存在尚未运行的任务,如果当前作业还有尚未开始运行的任务,则从尚未开始运行的任务中选择一个任务在空闲资源上执行,否则,继续往下执行;获取需要的作业运行时信息;寻找慢任务,获取所有慢任务的剩余完成时间EstimatedTaskTimeLeft,按剩余完成时间由大到小对慢任务列表进行排序,生成慢任务列表CandidateTasks[N];如慢任务列表大小为0,即不存在慢任务,则不需要进行推测执行,否则,继续往下执行;获取所有正在运行任务所在资源的待释放时间EstimatedNodeTimeLeft,获取备份任务在待释放资源和已释放资源上执行需要的最终完成时间CandidateTaskTime,将获取的最终完成时间CandidateTaskTime由小到大进行排序,并只保留总时间小于已释放资源执行完成备份任务所需时间的待释放资源,生成待释放资源列表CandidateNodes[M];对慢任务列表CandidateTasks[N]和待释放资源列表CandidateNodes[M]进行判断,如果M<=N,且慢任务列表中第M个慢任务的剩余完成时间estimatedTaskTimeLeft[M]大于备份任务在待释放资源列表的第M个资源上的最终完成时间candidateTaskTime[M]时,则选择慢任务candidateTasks[M]在该申请任务的空闲资源上进行备份执行,否则不为该空闲资源分配慢任务。...
【技术特征摘要】
【专利技术属性】
技术研发人员:李智勇,陈京,袁廷坤,陈少淼,杨波,李仁发,
申请(专利权)人:湖南大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。