CN106168912A - 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法 - Google Patents

一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法 Download PDF

Info

Publication number
CN106168912A
CN106168912A CN201610609466.0A CN201610609466A CN106168912A CN 106168912 A CN106168912 A CN 106168912A CN 201610609466 A CN201610609466 A CN 201610609466A CN 106168912 A CN106168912 A CN 106168912A
Authority
CN
China
Prior art keywords
task
time
backup tasks
tasks
backup
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
CN201610609466.0A
Other languages
English (en)
Other versions
CN106168912B (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.)
Chongqing Xinke Communication Engineering 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 CN201610609466.0A priority Critical patent/CN106168912B/zh
Publication of CN106168912A publication Critical patent/CN106168912A/zh
Application granted granted Critical
Publication of CN106168912B publication Critical patent/CN106168912B/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,属于云计算平台优化技术领域。该方法采用SDN带宽感知能力,建立BWRE备份任务运行时间估计模型,对基于备份任务推测执行机制的备份任务调度方法进行优化;通过为节点任务请求者TTi分配备份任务时加入慢任务的剩余时间与预启动备份任务在该TTi上的估计运行时间之间的对比,增加此备份任务的可信赖程度,即相信这个备份任务能够比原始慢任务更早结束,从而提高备份任务的有效率。该方法这不仅可以缩短作业周转时间,还可以降低无效备份任务带来的系统资源浪费。

Description

一种Hadoop大数据平台中基于备份任务运行时间估计的调度 方法
技术领域
本发明属于云计算平台优化技术领域,涉及一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法。
背景技术
随着信息技术产业迅猛发展,企业、组织和个人所产生的数据量也与日俱增,我们生活在一个数据增长比以往任何时候都要快的时代。2012年,Google在世界范围内拥有数百万台服务器总量的数据中心,平均每天要处理33亿次的搜索请求,每月要处理的用户生成数据更是超过了400PB;同年,FaceBook公布其数据中心平均每天接收3亿张用户上传的图片,数据库中新增数据也超过了500TB。在IDC的2014年度数据报告中预测2020年将有40亿人接入网络,全球数据量将达到44ZB,这一数据规模是2013年的10倍之多。这些海量数据所蕴含的4V特征,即体量大(volume),模式多(variety),速度快(velocity),价值密度低(value),正是大数据管理和信息提取的困难度和复杂性所在。随着社会全面信息化,我们进入了“大数据时代”。传统数据存储能力和数据处理技术逐渐显得乏力,云计算技术应运而生。
面对这些海量的数据,对它们存储、挖掘、实时处理等,都需要云计算作为技术支撑,所以云计算是让大数据发挥价值的关键。云计算这个概念的直接起源来自Dell的数据中心解决方案、Google和IBM的分布式计算项目。但云计算的思想得益于网格计算、并行计算、分布式计算、资源虚拟化、网络存储等传统计算机技术和网络技术的联合演进以及相互融合。云计算采取集群计算,将若干独立计算实体通过网络整合成一个具有强大计算能力的资源池,并借助基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)和管理服务提供商(MSP)等先进的商业模式,把计算资源池中强大的计算能力按需分配到用户手中。
2003年以来,Google以学术论文的形式陆续公开了其GFS、MapReduce、BigTable等分布式海量数据处理框架,同时证明了该框架的高可扩展、高性能等优越性。基于这些技术,Doug Cutting将其运用到了全网搜索引擎项目(Nutch)中。2006年年初,开发人员将这个开源实现移出了Nutch,成为Lucene的一个子项目,称为Hadoop。开源的Apache Hadoop提供了成熟的“大数据处理工具”,得到了广泛应用和支持,是“大数据”计算的事实标准。Hadoop中的调度策略组件负责系统中所有作业与其子任务的整个调度过程,包括如何选择作业和它的子任务,以及如何选择适合的计算节点来执行它们。调度结果会直接影响Hadoop系统的整体性能和集群资源利用率。所以衡量调度策略优劣的主要指标就是系统对作业任务的响应时间(即周转时间),和集群资源(例如计算资源和带宽资源)的利用率,而目前Hadoop系统中仍在广泛使用的调度策略均存在许多不足之处。我们通过对Hadoop的研究,提升其性能,以改善“云”的处理能力。
在分布式计算领域中,调度策略的根本目标是根据当前集群中各个节点上的资源(包括CPU、内存和网络资源)剩余情况与各个用户作业的服务质量(QoS,Quality ofService)要求,在资源和作业/任务之间做出最优的匹配。由于用户对作业的服务质量的要求是多样化的,因此,分布式系统中的任务调度是一个多目标优化问题,更进一步说,它是一个典型的NP问题。
在当前的Hadoop版本中,Hadoop通过备份任务推测执行机制来加快一项作业中的某些慢任务来缩短作业周转时间。然而,推测执行机制在任务剩余时间估计精度以及备份任务调度有效率等方面表现不足,会导致大量备份任务的结束时间并不比原始慢任务早,造成这些备份任务的分配和运行无效。这些不足不仅造成了系统资源的浪费,而且这些失效的备份任务使得原本的备份任务推测执行机制失去了意义。
发明内容
有鉴于此,本发明的目的在于提供一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,采用SDN带宽感知能力,建立BWRE备份任务运行时间估计模型,对基于备份任务推测执行机制的备份任务调度方法进行优化。
为达到上述目的,本发明提供如下技术方案:
一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,该方法包括以下步骤:
S1:判断在JobTracker节点上的Job(作业)中的任务进程实体TaskTracker,即任务请求者,是否为一个慢节点,通过该TaskTracker运行作业的其他任务的时候的性能表现对其评估;如果是,则不能启动任何备份任务;
S2:检查JobTracker节点上的Job(作业)中已经启动的任务数是否超过阀值;一个任务一旦启动了备份任务,则需要两倍的计算资源处理同样的数据,这样可以防止推测执行机制滥用;
S3:筛选出Job(作业)中所有满足条件的任务,并保存到candidates表中,其中条件为:该任务未在TaskTraker失败过,该任务没有其他正在运行的备份任务,该任务已经运行超过60秒,该任务已经出现“拖后腿迹象”;然后根据LATE(LongestApproximate Time toEnd)最长剩余时间估计算法计算出candidates表中任务的剩余时间,并选择剩余时间最大的任务,即慢任务,为其预启动备份任务;其中LATE算法采用基于“任务运行速度”和“任务剩余时间估计”的策略,根据leftTimei=(1-Progressi)/ProgressRatei来估算任务的剩余时间;在candidates中有多个待选任务的时候,Hadoop倾向于选择剩余时间最长的任务,这样的任务是的其备份任务替代自己的可能性最大;
S4:判断预启动备份任务是否是本地任务,如果是,备份任务估计运行时间等于执行时间,即runTime=executeTime;
S5:如果预启动备份任务不是本地任务,那么任务的输入数据则是从多个节点拷贝而来,调用OpenFlow的Floodlight的北向API获得对应链路实时带宽Bw(src~des);
S6:基于SDN带宽感知的BWRE(备份任务运行时间估计模型)计算出步骤S5中预启动备份任务的估计运行时间runTime=copyTime+executeTime,即运行时间等于输入数据网络拷贝时间与执行时间之和;BWRE(BandWidth-basedRun-time Estimate)模型加入了任务输入数据的网路拷贝时间,运用了SDN的带宽感知能力,取得此预启动备份任务的输入数据源节点(src)与任务执行节点(des)之间的实时网络带宽,即Bw(src~des),然后根据任务输入数据分片大小/实时网络带宽,即InputSizei/Bw(src~des)得到预启动备份任务估计运行时间中的任务输入数据的网络拷贝时间部分;同时利用SDN带宽保障,当预启动备份任务调度给TaskTracker(TTi)后,保障TTi所在的节点与备份任务输入数据所在节点之间的网络带宽能够达到SDN感知获取的瞬时带宽;
S7:用leftTime(SlowTaski)和runTime(SpeculativeTaski)分别表示步骤S3中计算出的慢任务剩余时间和步骤S4或者S6中计算出的预启动备份任务的估计运行时间,并做对比,若符合leftTime(SlowTaski)>runTime(SpeculativeTaski),则将此预启动备份任务(SpeculativeTask)调度给TaskTracker,正式启动此备份任务,反之,则不调度。
进一步,在步骤S1中,需要判断TaskTracker(TTi)是否是慢节点,根据公式:
Pr o g r e s s R a t e ( TT i ) ‾ f - Pr o g r e s s R a t e ( * ) ‾ f ≤ σ × s l o w N o d e T h r e s h o l d
其中,表示一个TaskTracker(TTi)上所有运行状态为finished的任务的平均任务增长率;同时表示所有作业Jobj的任务中运行状态为finished的任务的平均进度增长率;
如果满足上述公式,则TaskTracker不是慢节点,有能力启动一个备份任务;
其中,TTi表示第i个进程实体TaskTracker;σ表示作业Jobj中所有任务进度增长率的标准方差;slowNodeThreshold是LATE设定的参数,表示TaskTracker上已运行完成任务的平均进度增长率与所有已完成任务的平均进度增长率的最大允许差距。
进一步,在步骤S2中,由于启动备份任务消耗集群资源,Hadoop要求同时启动的备份任务数占所有正在运行任务的比例不超过speculativeCap;根据下面的公式来判断Job中已经启动的任务数是否超过阀值:
speculativeTaskCount/numRunningTask<speculativeCap
其中,speculativeCap是在配置文件mapred-default.xml中由参数mapreduce.job.speculative.speculativecap设定的门限值,用于限定该作业允许启动备份任务的任务数目占正在运行任务的百分比。
进一步,在步骤S3中,需要筛选出Job(作业)中所有满足条件的任务,其中一个要求就是该任务已经出现“拖后腿迹象”,根据下面的公式来判断该任务是否出现“拖后腿迹象”:
Pr o g r e s s R a t e ( * ) ‾ f - Pr o g r e s s R a t e ( Task i ) ‾ f ≤ σ × s l o w T a s k T h r e s h o l d
其中,表示所有作业Jobj的任务中运行状态为finished的任务的平均进度增长率;表示一个任务Taski的平均任务进度增长率;
根据LATE(最长剩余时间估计算法)算出在candidates表中的慢任务i的剩余时间leftTime(SlowTaski),公式如下:
leftTime(SlowTaski)=(1-Progressi)/ProgressRatei
其中,Progressi表示任务进度;ProgressRatei表示任务i的执行速度;
ProgressRatei=Progressi/Δt
选择剩余时间最大的任务,即慢任务,为其预启动备份任务。
进一步,在步骤S6中,预启动备份任务的估计运行时间:
runTime=copyTime+executeTime,即估计运行时间等于输入数据网络拷贝时间与执行时间之和,计算需要用到基于SDN带宽感知的BWRE(备份任务运行时间估算模型),如下式:
r u n T i m e ( SpeculativeTime i ) = inputSize i B w ( s r c ~ d e s ) + 1 Pr o g r e s s R a t e ( TT k ) ‾ f
其中,Bw(src~des)表示当前系统中此输入数据分片所在的物理节点(src)与TaskTracker所在节点(des)之间的实时网络带宽,借助SDN的带宽感知能力,调用OpenFlow的Floodlight的北向API获得对应链路实时带宽来实现这个功能;表示此备份任务在该任务请求者TTk上预估的任务执行时间;其中,1代表任务进度,在Hadoop中无论是Map任务还是Reduce任务,任务进度表示一个比例值,取值范围是[0,1],所以总任务进度就是1;而表示根据TTk上所执行过的该项作业所有任务的进度率的平均值,来预测它执行该项备份任务的进度率;InputSizei/Bw(src~des)表示备份任务的输入数据的远程拷贝时间,如果是本地任务则为0,因为不需要远程拷贝;
1)如果备份任务是Map任务,那么InputSizei表示任务i的输入数据分片(InpuSplit)的大小,此数据分片大小与数据块的大小相同,默认为64MB;
2)如果备份任务是Reduce任务,那么InputSizei表示Reduce任务从各个Map任务端拷贝的中间数据,根据节点汇报线程(Reporter)中向JobTracker汇报的该Reduce任务的输入数据量取得;
表示此备份任务在该任务请求者TTk上预估的任务执行时间,其中,1代表任务进度,在Hadoop中无论是Map任务还是Reduce任务,任务进度表示一个比例值,取值范围是[0,1],所以总任务进度就是1;而表示根据TTk上所执行过的该项作业所有任务的进度率的平均值,来预测它执行该项备份任务的进度率。
其中,将Hadoop系统建立在SDN网络层之上;SDN网络层主要由OpenFlow控制器和OpenFlow交换机组成。OpenFlow控制器负责对整个SDN网络的管控功能;使用Floodlight控制器作为OpenFlow控制器的实体软件。在Floodlight控制器中加入服务质量(QoS)程序模块,可以实现流量监控、接口限速、流量分类、拥塞管理等功能。而JobTracker通过Floodlight向上层提供的北向API接口调用QoS模块提供的服务质量保障功能。由此,利用带有QoS模块的Floodlight控制器提供了所需的两个功能:
1)利用SDN带宽感知:获得任务请求者TTk所在物理节点与备份任务的输入数据所在物理节点之间的实时网络带宽;
2)利用SDN带宽保障:当备份任务调度给TTk后,保障TTk所在的节点与备份任务输入数据所在节点之间的网络带宽能够达到1)中获取的瞬时带宽。
进一步,在步骤S7中,用leftTime(SlowTaski)和runTime(SpeculativeTaski)分别表示原始慢任务的剩余时间和预启动备份任务的估计运行时间;如果符合下式,则将此预启动备份任务(SpeculativeTaski)调度给任务请求者TTi,正式启动备份任务;
leftTime(SlowTaski)>runTime(SpeculativeTaski)
这样,在备份任务调度的关键处,通过添加对慢任务剩余时间与备份任务的运行时间之间做对比的方式,增加此备份任务的可信赖程度,即相信这个备份任务能够比原始慢任务更早结束,从而提高备份任务的有效率。这不仅可以缩短作业周转时间,还可以降低无效备份任务带来的系统资源浪费。
本发明的有益效果在于:本发明结合了SDN的带宽感知能力,提出了备份任务运行时间估计模型(BWRE),通过为节点任务请求者TTi分配备份任务时加入慢任务的剩余时间与预启动备份任务在该TTi上的估计运行时间之间的对比,增加此备份任务的可信赖程度,即相信这个备份任务能够比原始慢任务更早结束,从而提高备份任务的有效率。这不仅可以缩短作业周转时间,还可以降低无效备份任务带来的系统资源浪费。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明所述方案的宏观流程图;
图2为本发明所述的基于备份任务运行时间估计的调度方法流程图;
图3为本发明的备份任务调度模块图;
图4为本发明所述的基于备份任务运行时间估计的调度方法框架;
图5为一个Hadoop集群网络拓扑图;
图6为Hadoop框架中基于备份任务运行时间估计的调度方法的时序图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
图1为本发明所述方案的宏观流程图,图2为本发明所述的基于备份任务运行时间估计的调度方法流程图,如图所示,本发明所述的Hadoop大数据平台中基于备份任务运行时间估计的调度方法主要包括以下七个步骤:步骤一:判断在JobTracker节点上的Job(作业)中的任务进程实体TaskTracker,即任务请求者,是否为一个慢节点;步骤二:检查JobTracker节点上的Job(作业)中已经启动的任务数是否超过阀值;步骤三:筛选出Job(作业)中所有满足条件的任务,并保存到candidates表中,根据LATE(最长剩余时间估计算法)计算出任务剩余时间leftTime,选择剩余时间最大的任务,即慢任务,为其预启动备份任务;步骤四:判断预启动备份任务是否是本地任务,如果是,备份任务运行时间即为备份任务执行时间,即runTime=executeTime;步骤五:如果步骤四中的预启动备份任务不是本地任务,调用OpenFlow的Floodlight北向API获得对应链路实时带宽Bw(src~des);步骤六:基于SDN带宽感知的BWRE(备份任务运行时间估计模型)计算出预启动备份任务的估计运行时间runTime=copyTime+executeTime,即估计运行时间等于输入数据网络拷贝时间与执行时间之和;步骤七:用leftTime(SlowTaski)和runTime(SpeculativeTaski)分别表示步骤三计算得到的慢任务的剩余时间和步骤四或六中计算得到的预启动备份任务的估计运行时间,并做对比,若符合leftTime(SlowTaski)>runTime(SpeculativeTaski),则将预启动备份任务(SpeculativeTask)调度给TaskTracker正式启动备份任务。
在Hadoop平台中JobTracker以“三层多叉树”的方式,描述和跟踪每个作业的运行状态,作业被抽象成三层,从上往下依次为:作业监控层、任务监控层和任务执行层。在作业监控层中,每个作业由一个JobInProgress(JIP)对象描述和跟踪其整体运行状态以及每个任务的运行情况;在任务监控层中,每个任务由一个TaskInProgress(TIP)对象描述和跟踪其运行状态。
所以在步骤一中Hadoop通过该TaskTracker运行该作业i的其他任务时候的性能表现对其进行评估,判断其是否是慢节点,也就是是否满足下面的条件:
Pr o g r e s s R a t e ( TT i ) ‾ f - Pr o g r e s s R a t e ( * ) ‾ f ≤ σ × s l o w N o d e T h r e s h o l d
其中,表示一个TaskTracker(TTi)上所有运行状态为finished的任务的平均任务增长率;同时表示所有作业Jobj的任务中运行状态为finished的任务的平均进度增长率。
如果满足上述公式,则TaskTracker不是慢节点,有能力启动一个备份任务。
在步骤二中检查JobTracker节点上的Job(作业)中已经启动的任务数是否超过阀值。Hadoop要求同时启动的备份任务数目与所有正在运行任务的比例不能超过speculativeCap。满足下面条件即可:
speculativeTaskCount/numRunningTask<speculativeCap
其中,speculativeCap是在配置文件mapred-default.xml中由参数mapreduce.job.speculative.speculativecap设定的门限值,用于限定该作业允许启动备份任务的任务数目占正在运行任务的百分比。
在步骤三中,Hadoop系统中的节点上的任务实例(Task)周期性的向TaskTracker汇报最新进度,它以线程的形式将任务进度信息封装在Progress类的实例中,且每个Progress实例计算出任务进度值,最终被Reporter汇报给TaskTracker。而TaskTracker再以心跳信息的形式发送给JobTracker。JobTracker根据上述信息进行慢任务推测,筛选出Job(作业)中所有满足条件的任务,其中一个要求就是该任务已经出现“拖后腿迹象”。可以根据下面的公式来判断该任务是否出现“拖后腿迹象”:
Pr o g r e s s R a t e ( * ) ‾ f - Pr o g r e s s R a t e ( Task i ) ‾ f ≤ σ × s l o w T a s k T h r e s h o l d
其中,表示所有作业Jobj的任务中运行状态为finished的任务的平均进度增长率;表示一个任务Taski的平均任务进度增长率;
接下来根据LATE算法算出在candidates表中的慢任务i的剩余时间leftTime(SlowTaski),公式如下:
leftTime(SlowTaski)=(1-Progressi)/ProgressRatei
其中,Progressi表示任务进度;ProgressRatei表示任务i的执行速度。
ProgressRatei=Progressi/Δt
按照运行剩余时间由大到小对candidates表中任务进行排序,并选择剩余时间最大的任务,即慢任务,作业调度器调度任务时调用JobInProgress的obtainNewTask()函数会获取到慢任务,为其预启动备份任务。即通过调用JobInProgress的findSpeculativeTask()函数选择备份任务。为作业调度器(TaskScheduler)添加一个监听者,当作业调度器中调度了findSpeculativeTask()函数,那么便开始启动基于SDN带宽感知的备份任务调度模块(SDNScheduler),如图3备份任务调度模块图所示,SDNScheduler主要包含两部分:LATE备份任务改进调度策略和BWRE计算模型,此模块对作业调度器的备份任务分配做出最终决策。
在步骤四中,需要判断预启动备份任务是否是本地任务,如果是,备份任务估计运行时间等于执行时间,即runTime=executeTime;
在步骤五中,如果预启动备份任务不是本地任务,那么任务的输入数据则是从多个节点拷贝而来,如图4所示,调用OpenFlow的Floodlight的北向API获得对应链路实时带宽Bw(src~des);
在步骤六中,预启动备份任务的估计运行时间runTime=copyTime+executeTime,即估计运行时间等于输入数据网络拷贝时间与执行时间之和的计算需要用到基于SDN带宽感知的BWRE(备份任务运行时间估算模型),如下式:
r u n T i m e ( SpeculativeTime i ) = inputSize i B w ( s r c ~ d e s ) + 1 Pr o g r e s s R a t e ( TT k ) ‾ f
其中,Bw(src~des)表示当前系统中此输入数据分片所在的物理节点(src)与TaskTracker所在节点(des)之间的实时网络带宽,如图4备份任务调度框架所示,借助SDN的带宽感知能力,调用OpenFlow的Floodlight的北向API获得对应链路实时带宽来实现这个功能;表示此备份任务在该任务请求者TTk上预估的任务执行时间。如果预启动备份任务是本地任务,则备份任务估计运行时间等于执行时间,即runTime=executeTime,此时远程拷贝时间InputSizei/Bw(src~des)为0;反之,如果预启动备份任务不是本地任务,预启动备份任务的估计运行时间runTime=copyTime+executeTime,即估计运行时间等于输入数据网络拷贝时间与执行时间之和,此时Bw(src~des)是建立在SDN网络层之上的Hadoop系统中的JobTracker通过Floodlight向上层提供的北向API接口调用QoS模块提供的服务质量保障功能直接获取到的链路的实时带宽。而关于QoS模块中链路带宽保障的实现,主要是利用了Floodlight控制器对OpenFlow交换机中流表项的添加和修改功能。由此,利用带有QoS模块的Floodlight控制器提供的SDN带宽感知和SDN带宽保障功能,根据BWRE模型计算得到备份任务运行估计时间。图5为一个Hadoop集群网络拓扑图,图6为Hadoop框架中基于备份任务运行时间估计的调度方法的时序图。
在步骤七中,将步骤三中计算得到的原始慢任务的剩余时间和步骤四或者六中计算得到的预启动备份任务的估计运行时间进行对比,如果符合下式,则将此预启动备份任务(SpeculativeTaski)调度给任务请求者TaskTracker正式启动备份任务。
leftTime(SlowTaski)>runTime(SpeculativeTaski)
只有这样为该TaskTracker调度这个备份任务才有意义。如果不满足上式,则不进行调度,提高备份任务的有效率。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

Claims (5)

1.一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,其特征在于:该方法包括以下步骤:
S1:判断在JobTracker节点上的Job(作业)中的任务进程实体TaskTracker,即任务请求者,是否为一个慢节点,通过该TaskTracker运行作业的其他任务的时候的性能表现对其评估;如果是,则不能启动任何备份任务;
S2:检查JobTracker节点上的Job(作业)中已经启动的任务数是否超过阀值;一个任务一旦启动了备份任务,则需要两倍的计算资源处理同样的数据,这样可以防止推测执行机制滥用;
S3:筛选出Job(作业)中所有满足条件的任务,并保存到candidates表中,其中条件为:该任务未在TaskTraker失败过,该任务没有其他正在运行的备份任务,该任务已经运行超过60秒,该任务已经出现“拖后腿迹象”;然后根据LATE(Longest Approximate Time toEnd)最长剩余时间估计算法计算出candidates表中任务的剩余时间,并选择剩余时间最大的任务,即慢任务,为其预启动备份任务;其中LATE算法采用基于“任务运行速度”和“任务剩余时间估计”的策略,根据leftTimei=(1-Progressi)/ProgressRatei来估算任务的剩余时间;在candidates中有多个待选任务的时候,Hadoop倾向于选择剩余时间最长的任务,这样的任务是的其备份任务替代自己的可能性最大;
S4:判断预启动备份任务是否是本地任务,如果是,备份任务估计运行时间等于执行时间,即runTime=executeTime;
S5:如果预启动备份任务不是本地任务,那么任务的输入数据则是从多个节点拷贝而来,调用OpenFlow的Floodlight的北向API获得对应链路实时带宽Bw(src~des);
S6:基于SDN带宽感知的BWRE(备份任务运行时间估计模型)计算出步骤S5中预启动备份任务的估计运行时间runTime=copyTime+executeTime,即运行时间等于输入数据网络拷贝时间与执行时间之和;BWRE(BandWidth-basedRun-time Estimate)模型加入了任务输入数据的网路拷贝时间,运用了SDN的带宽感知能力,取得此预启动备份任务的输入数据源节点(src)与任务执行节点(des)之间的实时网络带宽,即Bw(src~des),然后根据任务输入数据分片大小/实时网络带宽,即InputSizei/Bw(src~des)得到预启动备份任务估计运行时间中的任务输入数据的网络拷贝时间部分;同时利用SDN带宽保障,当预启动备份任务调度给TaskTracker(TTi)后,保障TTi所在的节点与备份任务输入数据所在节点之间的网络带宽能够达到SDN感知获取的瞬时带宽;
S7:用leftTime(SlowTaski)和runTime(SpeculativeTaski)分别表示步骤S3中计算出的慢任务剩余时间和步骤S4或者S6中计算出的预启动备份任务的估计运行时间,并做对比,若符合leftTime(SlowTaski)>runTime(SpeculativeTaski),则将此预启动备份任务(SpeculativeTask)调度给TaskTracker,正式启动此备份任务,反之,则不调度。
2.根据权利要求1所述的一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,其特征在于:在步骤S1中,需要判断TaskTracker(TTi)是否是慢节点,根据公式:
Pr o g r e s s R a t e ( TT i ) ‾ f - Pr o g r e s s R a t e ( * ) ‾ f ≤ σ × s l o w N o d e T h r e s h o l d
其中,表示一个TaskTracker(TTi)上所有运行状态为finished的任务的平均任务增长率;同时表示所有作业Jobj的任务中运行状态为finished的任务的平均进度增长率;
如果满足上述公式,则TaskTracker不是慢节点,有能力启动一个备份任务;
其中,TTi表示第i个进程实体TaskTracker;σ表示作业Jobj中所有任务进度增长率的标准方差;slowNodeThreshold是LATE设定的参数,表示TaskTracker上已运行完成任务的平均进度增长率与所有已完成任务的平均进度增长率的最大允许差距。
3.根据权利要求1所述的一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,其特征在于:在步骤S2中,由于启动备份任务消耗集群资源,Hadoop要求同时启动的备份任务数占所有正在运行任务的比例不超过speculativeCap;根据下面的公式来判断Job中已经启动的任务数是否超过阀值:
speculativeTaskCount/numRunningTask<speculativeCap
其中,speculativeCap是在配置文件mapred-default.xml中由参数mapreduce.job.speculative.speculativecap设定的门限值,用于限定该作业允许启动备份任务的任务数目占正在运行任务的百分比。
4.根据权利要求1所述的一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,其特征在于:在步骤S3中,需要筛选出Job(作业)中所有满足条件的任务,其中一个要求就是该任务已经出现“拖后腿迹象”,根据下面的公式来判断该任务是否出现“拖后腿迹象”:
Pr o g r e s s R a t e ( * ) ‾ f - Pr o g r e s s R a t e ( Task i ) ‾ ≤ σ × s l o w T a s k T h r e s h o l d
其中,表示所有作业Jobj的任务中运行状态为finished的任务的平均进度增长率;表示一个任务Taski的平均任务进度增长率;
根据LATE(最长剩余时间估计算法)算出在candidates表中的慢任务i的剩余时间leftTime(SlowTaski),公式如下:
leftTime(SlowTaski)=(1-Progressi)/ProgressRatei
其中,Progressi表示任务进度;ProgressRatei表示任务i的执行速度;
ProgressRatei=Progressi/Δt
选择剩余时间最大的任务,即慢任务,为其预启动备份任务。
5.根据权利要求1所述的一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法,其特征在于:在步骤S6中,预启动备份任务的估计运行时间:
runTime=copyTime+executeTime,即估计运行时间等于输入数据网络拷贝时间与执行时间之和,计算需要用到基于SDN带宽感知的BWRE(备份任务运行时间估算模型),如下式:
r u n T i m e ( SpeculativeTime i ) = InputSize i B w ( s r c ~ d e s ) + 1 Pr o g r e s s R a t e ( TT k ) ‾ f
其中,Bw(src~des)表示当前系统中此输入数据分片所在的物理节点(src)与TaskTracker所在节点(des)之间的实时网络带宽,借助SDN的带宽感知能力,调用OpenFlow的Floodlight的北向API获得对应链路实时带宽来实现这个功能;表示此备份任务在该任务请求者TTk上预估的任务执行时间;其中,1代表任务进度,在Hadoop中无论是Map任务还是Reduce任务,任务进度表示一个比例值,取值范围是[0,1],所以总任务进度就是1;而表示根据TTk上所执行过的该项作业所有任务的进度率的平均值,来预测它执行该项备份任务的进度率;InputSizei/Bw(src~des)表示备份任务的输入数据的远程拷贝时间,如果是本地任务则为0,因为不需要远程拷贝;
1)如果备份任务是Map任务,那么InputSizei表示任务i的输入数据分片(InpuSplit)的大小,此数据分片大小与数据块的大小相同,默认为64MB;
2)如果备份任务是Reduce任务,那么InputSizei表示Reduce任务从各个Map任务端拷贝的中间数据,根据节点汇报线程(Reporter)中向JobTracker汇报的该Reduce任务的输入数据量取得;
表示此备份任务在该任务请求者TTk上预估的任务执行时间,其中,1代表任务进度,在Hadoop中无论是Map任务还是Reduce任务,任务进度表示一个比例值,取值范围是[0,1],所以总任务进度就是1;而表示根据TTk上所执行过的该项作业所有任务的进度率的平均值,来预测它执行该项备份任务的进度率。
CN201610609466.0A 2016-07-28 2016-07-28 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法 Active CN106168912B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610609466.0A CN106168912B (zh) 2016-07-28 2016-07-28 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610609466.0A CN106168912B (zh) 2016-07-28 2016-07-28 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法

Publications (2)

Publication Number Publication Date
CN106168912A true CN106168912A (zh) 2016-11-30
CN106168912B CN106168912B (zh) 2019-04-16

Family

ID=58064946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610609466.0A Active CN106168912B (zh) 2016-07-28 2016-07-28 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法

Country Status (1)

Country Link
CN (1) CN106168912B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108233A (zh) * 2017-11-29 2018-06-01 上海交通大学 任务多副本执行的集群作业调度方法及系统
CN108228323A (zh) * 2016-12-14 2018-06-29 龙芯中科技术有限公司 基于数据本地性的Hadoop任务调度方法及装置
CN108647137A (zh) * 2018-05-10 2018-10-12 华东师范大学 一种作业性能预测方法、装置、介质、设备及系统
CN107346262B (zh) * 2017-06-06 2020-12-15 华为技术有限公司 一种任务迁移的方法及控制器
WO2020248227A1 (zh) * 2019-06-13 2020-12-17 东北大学 一种基于负载预测的Hadoop计算任务推测执行方法
WO2021184724A1 (zh) * 2020-03-20 2021-09-23 平安科技(深圳)有限公司 一种自动调整定时备份作业发起时间的方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230637A1 (en) * 2003-04-29 2004-11-18 Microsoft Corporation Application controls for speech enabled recognition
CN105426255A (zh) * 2015-12-28 2016-03-23 重庆邮电大学 Hadoop大数据平台中基于网络I/O代价评估的ReduceTask数据本地性调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230637A1 (en) * 2003-04-29 2004-11-18 Microsoft Corporation Application controls for speech enabled recognition
CN105426255A (zh) * 2015-12-28 2016-03-23 重庆邮电大学 Hadoop大数据平台中基于网络I/O代价评估的ReduceTask数据本地性调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LI-WEI CHENG ET AL: "Application-Aware SDN Routing for Big Data Networking", 《2015 IEEE GLOBAL COMMUNICATIONS CONFERENCE (GLOBECOM)》 *
夏洋等: "基于SDN的MapReduce调度优化方法", 《指挥信息系统与技术》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228323A (zh) * 2016-12-14 2018-06-29 龙芯中科技术有限公司 基于数据本地性的Hadoop任务调度方法及装置
CN108228323B (zh) * 2016-12-14 2020-09-01 龙芯中科技术有限公司 基于数据本地性的Hadoop任务调度方法及装置
CN107346262B (zh) * 2017-06-06 2020-12-15 华为技术有限公司 一种任务迁移的方法及控制器
CN108108233A (zh) * 2017-11-29 2018-06-01 上海交通大学 任务多副本执行的集群作业调度方法及系统
CN108108233B (zh) * 2017-11-29 2021-10-01 上海交通大学 任务多副本执行的集群作业调度方法及系统
CN108647137A (zh) * 2018-05-10 2018-10-12 华东师范大学 一种作业性能预测方法、装置、介质、设备及系统
CN108647137B (zh) * 2018-05-10 2020-12-22 华东师范大学 一种作业性能预测方法、装置、介质、设备及系统
WO2020248227A1 (zh) * 2019-06-13 2020-12-17 东北大学 一种基于负载预测的Hadoop计算任务推测执行方法
WO2021184724A1 (zh) * 2020-03-20 2021-09-23 平安科技(深圳)有限公司 一种自动调整定时备份作业发起时间的方法、装置、设备及介质

Also Published As

Publication number Publication date
CN106168912B (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
CN106168912A (zh) 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法
US10402225B2 (en) Tuning resources based on queuing network model
US20200104230A1 (en) Methods, apparatuses, and systems for workflow run-time prediction in a distributed computing system
Agliamzanov et al. Hydrology@ Home: a distributed volunteer computing framework for hydrological research and applications
Hao et al. An enhanced load balancing mechanism based on deadline control on GridSim
CN108268638A (zh) 一种基于Spark框架的生成对抗网络分布式实现方法
Arkian et al. Model-based stream processing auto-scaling in geo-distributed environments
US9400680B2 (en) Transportation network micro-simulation with pre-emptive decomposition
CN110825522A (zh) Spark参数自适应优化方法及系统
Bergui et al. A survey on bandwidth-aware geo-distributed frameworks for big-data analytics
Anselmi et al. Heavy-traffic revenue maximization in parallel multiclass queues
Lan et al. Dynamic filter: Adaptive query processing with the crowd
CN111625352A (zh) 调度方法、装置及存储介质
Xue et al. When computing meets heterogeneous cluster: Workload assignment in graph computation
CN108429704B (zh) 一种节点资源分配方法及装置
Quattrocchi et al. Autoscaling Solutions for Cloud Applications under Dynamic Workloads
Mohammed et al. A survey on bandwidth-aware geo-distributed frameworks for big-data analytics
Aljulayfi et al. Towards elastic edge computing environments: an investigation of adaptive approaches
Salem et al. Quality of Service Management in Distributed Feedback Control Scheduling Architecture using Different Replication Policies
Guerin Computational Shedding in Stream Computing
Shahid Resource optimization of edge servers dealing with priority-based workloads by utilizing service level objective-aware virtual rebalancing
Zhang et al. Resource Provision for Cloud-Enabled Automotive Vehicles With a Hierarchical Model
Eskandari Task Scheduling in Data Stream Processing Systems
Ma et al. Optimizing Data Analysis Tasks Scheduling Based on Resource Utilization Prediction
Wang et al. Research on Resource Scheduling and Optimization Strategies of Edge Computing-based 5G Networks in Smart City Applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220601

Address after: 400065 Chongqing Nan'an District huangjuezhen pass Fort Park No. 1

Patentee after: Chongqing Xinke Communication Engineering Co.,Ltd.

Address before: 400065 Chongqing Nan'an District huangjuezhen pass Chongwen Road No. 2

Patentee before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS