一种任务调度方法及装置的制造方法

文档序号:9929435阅读:437来源:国知局
一种任务调度方法及装置的制造方法
【技术领域】
[0001] 本发明涉及大数据Hadoop集群调度技术领域,更具体地说,涉及一种任务调度方 法及装置。
【背景技术】
[0002] Hadoop是一个分布式系统基础架构,随着Hadoop的应用越来越广泛,其面临的问 题也愈来愈多,其中,包括在实现对于任务的调度时面临的问题。
[0003] 具体来说,现有技术中Hadoop平台下默认的作业调度算法主要为FIFO (Fir st Input First Output,先入先出)算法,即需要对任务进行调度时,按照先入先出的原则对 任务进行调度,每次调度的任务为未被处理的任务中最先存在的任务,由此,实现调度任务 的过程中关于时间方面的公平性。但是,发明人发现,按照先入先出算法进行任务的调度, 仅仅考虑到时间方面的公平性,而未考虑到不同的任务待处理的实际情况,即可能无法优 先处理急需被处理的任务,由此,造成急需被处理的任务可能无法被及时处理,进而降低了 任务执行效率。
[0004] 综上所述,现有技术中存在由于急需被处理的任务可能无法被及时处理而导致任 务执行效率较低的问题。

【发明内容】

[0005] 本发明的目的是提供一种任务调度方法及装置,以解决现有技术中存在的由于急 需被处理的任务可能无法被及时处理而导致任务执行效率较低的问题。
[0006] 为了实现上述目的,本发明提供如下技术方案:
[0007] 一种任务调度方法,包括:
[0008] 获取工作节点的请求信息,所述请求信息为所述工作节点存在空闲工作槽时发送 的请求任务的彳目息;
[0009] 计算每个任务队列的资源消耗特征及剩余任务比例,其中,任一任务队列的资源 消耗特征为依据该任务队列中正在运行的任务的CPU占用率、内存占用率及带宽占用率进 行计算得到的,任一任务队列的剩余任务比例为该任务队列中未运行任务与全部任务的比 值;
[0010] 选取所述任务队列中其资源消耗特征及剩余任务比例的乘积不小于其他任务队 列的任务队列为目标任务队列,并利用所述空闲工作槽对所述目标任务队列中的未运行任 务进行处理。
[0011] 优选的,利用所述空闲工作槽对所述目标任务队列中的未运行任务进行处理,包 括:
[0012]计算所述工作节点的能力特征,其中,所述能力特征为依据所述工作节点的CPU、 内存、硬盘及带宽对应的属性值进行计算得到的;
[0013]计算所述目标任务队列中包含的未运行任务的资源占用特征,其中,所述目标任 务队列中任一未运行任务的资源占用特征为该未运行任务占用的工作槽数量与所述目标 任务队列中全部任务占用的工作槽数量的平均值的比值;
[0014] 选取所述目标任务队列中其资源占用特征与所述工作节点的能力特征相匹配的 未运行任务为目标任务,并利用所述空闲工作槽对所述目标任务进行处理。
[0015] 优选的,选取所述目标任务队列中其资源占用特征与所述工作节点的能力特征相 匹配的未运行任务为目标任务,包括:
[0016] 将所述工作节点的能力特征与节点能力阈值进行比对,如果所述工作节点的能力 特征大于所述节点能力阈值,则判断所述目标队列中是否存在其资源占用特征大于资源占 用阈值的未运行任务,如果是,则由其资源占用特征大于资源占用阈值的未运行任务中选 取一个任务作为目标任务;
[0017]如果所述工作节点的能力特征等于所述节点能力阈值,则判断所述目标队列中是 否存在其资源占用特征等于资源占用阈值的未运行任务,如果是,则由其资源占用特征等 于资源占用阈值的未运行任务中选取一个任务作为目标任务;
[0018] 如果所述工作节点的能力特征小于所述节点能力阈值,则判断所述目标队列中是 否存在其资源占用特征小于资源占用阈值的未运行任务,如果是,则由其资源占用特征小 于资源占用阈值的未运行任务中选取一个任务作为目标任务。
[0019] 优选的,还包括:
[0020] 将全部任务划分成第一预设数量个任务队列,并为每个任务队列分配第二预设数 量个用于对该任务队列中的任务进行处理的工作槽。
[0021] 优选的,计算每个任务队列的资源消耗特征,包括:按照下列公式计算任一任务队 列的资源消耗特征:
[0022] CQi = rm x Ttpu + rmem %Tmen + xTband
[0023] 其中,表示任一任务队列的资源消耗特征,Tcpu表示该任务队列中正在运行的 任务的CPU占用率的平均值,rcpu表示Tcpu所占的权重,Tmem表示该任务队列中正在运行的任 务的内存占用率的平均值,表示W斤占的权重,Tband表示该任务队列中正在运行的任 务的带宽占用率的平均值,r band表示Tband所占的权重。
[0024]优选的,计算所述工作节点的能力特征,包括:按照下列公式计算所述工作节点的 能力特征:
[0026] 其中,Nresource表示所述工作节点的能力特征,Ucpu表示所述工作节点的CPU主频,Wc 表示Uc^/f占的权重,Uman表示所述工作节点的内存大小,Wm表示Uman所占的权重,Udisk表示所 述工作节点的硬盘大小,Wd表示Udisk所占的权重,Uband表示所述工作节点的带宽大小,Wb表 示Uband所占的权重,8^_表示所述工作节点所在集群中全部工作节点CPU主频的平均值, avgmem表示所述工作节点所在集群中全部工作节点内存大小的平均值,avgdisk表示所述工 作节点所在集群中全部工作节点硬盘大小的平均值,avg band表示所述工作节点所在集群中 全部工作节点带宽大小的平均值。
[0027] 优选的,还包括:
[0028] 计算所述工作节点的负载状态,其中,所述负载状态为依据所述工作节点的CPU占 用率、内存占用率及带宽占用率计算得到的;
[0029] 判断所述负载状态是否小于节点负载阈值,如果是,则计算每个任务队列的资源 消耗特征及剩余任务比例,如果否,则拒绝为所述工作节点分配任务。
[0030] 优选的,计算所述工作节点的负载状态,包括:按照下列公式计算所述工作节点的 负载状态:
[0031 ] L - fcpu X Lcpu+fmem X Lmem+fband X Lband
[0032]其中,L表示所述工作节点的负载状态,Lcpu表示所述工作节点的CPU占用率,匕叫表 TJ^Lcpu所占的权重,Lmem表不所述工作"P点的内存占用率,fmem表TJ^Lmem所占的权重,Lband表不 所述工作节点的带宽占用率,f band表示Lband所占的权重。
[0033] 一种任务调度装置,包括:
[0034] 监听模块,用于获取工作节点的请求信息,所述请求信息为所述工作节点存在空 闲工作槽时发送的请求任务的信息;
[0035] 计算模块,用于计算每个任务队列的资源消耗特征及剩余任务比例,其中,任一任 务队列的资源消耗特征为依据该任务队列中正在运行的任务的CPU占用率、内存占用率及 带宽占用率进行计算得到的,任一任务队列的剩余任务比例为该任务队列中未运行任务与 全部任务的比值;
[0036] 选取模块,用于选取所述任务队列中其资源消耗特征及剩余任务比例的乘积不小 于其他任务队列的任务队列为目标任务队列,并利用所述空闲工作槽对所述目标任务队列 中的未运行任务进行处理。
[0037]优选的,选取模块包括:
[0038]选取单元,用于:计算所述工作节点的能力特征,其中,所述能力特征为依据所述 工作节点的CPU、内存、硬盘及带宽对应的属性值进行计算得到的;计算所述目标任务队列 中包含的未运行任务的资源占用特征,其中,所述目标任务队列中任一未运行任务的资源 占用特征为该未运行任务占用的工作槽数量与所述目标任务队列中全部任务占用的工作 槽数量的平均值的比值;选取所述目标任务队列中其资源占用特征与所述工作节点的能力 特征相匹配的未运行任务为目标任务,并利用所述空闲工作槽对所述目标任务进行处理。 [0039]本发明提供了一种任务调度方法及装置,其中,该方法包括:获取工作节点的请求 信息,所述请求信息为所述工作节点存在空闲工作槽时发送的请求任务的信息;计算每个 任务队列的资源消耗特征及剩余任务比例,其中,任一任务队列的资源消耗特征为依据该 任务队列中正在运行的任务的CPU占用率、内存占用率及带宽占用率进行计算得到的,任一 任务队列的剩余任务比例为该任务队列中未运行任务与全部任务的比值;选取所述任务队 列中其资源消耗特征及剩余任务比例的乘积不小于其他任务队列的任务队列为目标任务 队列,并利用所述空闲工作槽对所述目标任务队列中的未运行任务进行处理。与现有技术 相比,本申请公开的上述技术方案综合考虑任一任务队列中正在运行的任务的资源消耗 (即资源消耗特征)及该任务队列中未运行任务的情况(即剩余任务比例)确定该任务队列 是否处于资源紧张状态,资源消耗特征与剩余任务比例的乘积越大,表明对应任务队列的 资源紧张状态越严重,越需要及时对对应任务队列进行处理,因此,选取任务队列中资源紧 张状态最严重的目
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1