数量81〇^与目标队列中所有任务占用的 作业槽的数量平均值的比值。
[0070] 本发明实施例提供的一种任务调度方法中,还可以包括:
[0071 ]将全部任务划分成第一预设数量个任务队列,并为每个任务队列分配第二预设数 量个用于对该任务队列中的任务进行处理的工作槽。
[0072]其中,第一预设数量和第二预设数量可以根据实际需要进行确定,并且,为每个任 务队列分配的工作槽的数量可以相同也可以不同。即,可以根据实际需要将全部任务划分 为第一预设数量个任务队列,并且,根据每个任务队列中包含的任务的实际需要,将全部工 作节点的工作槽分配给不同的任务队列中,其中,可以通过配置文件修改分配给不同任务 队列的工作槽的数量。举例说明,假设当前存在的任务的数量为3n个,那么可以将所有的任 务划分为3个任务队列,每个任务队列有n个任务,记3个任务队列为 a2,…,an},Q2 = {bi,b2,…,bn},Q3 = {ci,C2,…,cn}。工作节点的数量为M,记为M= {1,2,…, m},而工作节点对应的作业槽的数量为{lu,k2,…,km},即第一个工作节点具有h个工作槽, 第二个工作节点具有1?个工作槽,以此类推。并且,可以为任务队列&分配40%的工作槽,为 任务队列Q 2和任务队列Q3分别分配30%的工作槽等。
[0073]在此基础上,当某个工作槽被分配至任一任务队列后,未处理任何任务处于空闲 状态或者处理完需处理的任务处于空闲状态,就可以获取该空闲工作槽对应的工作节点的 请求信息,执行步骤S1至步骤S3,以将该工作槽分配至合适的任务队列中,如果该工作槽在 合适的任务队列中完成处理任务后,可以继续按照本发明实施例提供的一种任务调度方法 为其分配合适的任务队列,如果全部任务队列均不需要该工作槽,则将其归还回最先被分 配至的任务队列中。
[0074] 本发明实施例提供的一种任务调度方法中,计算每个任务队列的资源消耗特征, 可以包括:按照下列公式计算任一任务队列的资源消耗特征:
[0075] CQ = rpti x Tpi( + rmm x Tmem + rbmJ x Tbmd
[0076] 其中,^表示任一任务队列的资源消耗特征,Tcpu表示该任务队列中正在运行的 任务的CPU占用率的平均值,rcpu表示Tcpu所占的权重,Tmem表示该任务队列中正在运行的任 务的内存占用率的平均值,表示W斤占的权重,Tband表示该任务队列中正在运行的任 务的带宽占用率的平均值,r band表示Tband所占的权重,rcpu、rmem及r band的具体取值可以根据 头际需要进4丁确疋,且rcpu+rmem+rband - 1 〇
[0077] 其中,获取CPU占用率的平均值、内存占用率的平均值、带宽占用率的平均值可以 通过查看任务的运行日志,获取每个任务运行时占用的上述资源,并且取全部任务占用相 应资源的平均值获得。
[0078]另外,计算工作节点的能力特征,可以包括:按照下列公式计算工作节点的能力特 征:
[0080] 其中,Nresource表示工作节点的能力特征,Ucpu表示工作节点的CPU主频,W c表示Ucpu 所占的权重,Uman表示工作节点的内存大小,Wm表示Uman所占的权重,Udisk表示工作节点的硬 盘大小,Wd表示Udisk所占的权重,Uband表示工作节点的带宽大小,Wb表示Uband所占的权重, avgc;pu表示工作节点所在集群中全部工作节点CPU主频的平均值,avgman表示工作节点所在 集群中全部工作节点内存大小的平均值,avg dlsk表示工作节点所在集群中全部工作节点硬 盘大小的平均值,avgband表示工作节点所在集群中全部工作节点带宽大小的平均值。其中, WC、Wm、Wd及Wb的具体取值可以根据实际需要进行确定,且,Wc+Wm+Wd+Wb = 1。而用于计算工作 节点的能力特征的上述参数是静态的,均可以在Hadoop集群初始化后直接得到。
[0081 ]本发明实施例提供的一种任务调度方法中,还可以包括:
[0082] 计算工作节点的负载状态,其中,负载状态为依据工作节点的CPU占用率、内存占 用率及带宽占用率计算得到的;
[0083] 判断负载状态是否小于节点负载阈值,如果是,则计算每个任务队列的资源消耗 特征及剩余任务比例,如果否,则拒绝为工作节点分配任务。
[0084] 其中,节点负载阈值可以根据实际需要进行确定,通过设置节点负载阈值,在节点 的负载状态大于或等于节点负载阈值时,可以将其空闲工作槽的数量设置为〇,并且拒绝为 其分配任务,以避免节点过载。
[0085] 其中,计算工作节点的负载状态,可以包括:按照下列公式计算工作节点的负载状 态:
[0086] L - fcpu X Lcpu+fmem X Lmem+fband X Lband
[0087] 其中,L表示工作节点的负载状态,^^表示工作节点的CPU占用率,f cpu表示LcpuK 占的权重,表示工作节点的内存占用率,表示所占的权重,Lband表示工作节点的 带宽占用率,f band表示Lband所占的权重。其中,f _、f及f band的具体取值可以根据实际需要 进行确定,且fcpu+fmem+fband = 1。
[0088] 与上述方法实施例相对应,本发明实施例还提供了一种任务调度装置,如图3所 示,可以包括:
[0089] 监听模块1,用于获取工作节点的请求信息,请求信息为工作节点存在空闲工作槽 时发送的请求任务的信息;
[0090] 计算模块2,用于计算每个任务队列的资源消耗特征及剩余任务比例,其中,任一 任务队列的资源消耗特征为依据该任务队列中正在运行的任务的CPU占用率、内存占用率 及带宽占用率进行计算得到的,任一任务队列的剩余任务比例为该任务队列中未运行任务 与全部任务的比值;
[0091] 选取模块3,用于选取任务队列中其资源消耗特征及剩余任务比例的乘积不小于 其他任务队列的任务队列为目标任务队列,并利用空闲工作槽对目标任务队列中的任务进 行处理。
[0092] 本发明实施例还提供的一种任务调度装置,选取模块可以包括:
[0093]选取单元,用于:计算工作节点的能力特征,其中,能力特征为依据工作节点的 CPU、内存、硬盘及带宽对应的属性值进行计算得到的;计算目标任务队列中包含的未运行 任务的资源占用特征,其中,目标任务队列中任一未运行任务的资源占用特征为该未运行 任务占用的工作槽数量与目标任务队列中全部任务占用的工作槽数量的平均值的比值;选 取目标任务队列中其资源占用特征与工作节点的能力特征相匹配的未运行任务为目标任 务,并利用空闲工作槽对目标任务进行处理。
[0094]本发明实施例还提供的一种任务调度装置,选取单元可以包括:
[0095]选取子单元,用于:将工作节点的能力特征与节点能力阈值进行比对,如果工作节 点的能力特征大于节点能力阈值,则判断目标队列中是否存在其资源占用特征大于资源占 用阈值的未运行任务,如果是,则由其资源占用特征大于资源占用阈值的未运行任务中选 取一个任务作为目标任务;如果工作节点的能力特征等于节点能力阈值,则判断目标队列 中是否存在其资源占用特征等于资源占用阈值的未运行任务,如果是,则由其资源占用特 征等于资源占用阈值的未运行任务中选取一个任务作为目标任务;如果工作节点的能力特 征小于节点能力阈值,则判断目标队列中是否存在其资源占用特征小于资源占用阈值的未 运行任务,如果是,则由其资源占用特征小于资源占用阈值的未运行任务中选取一个任务 作为目标任务。
[0096] 本发明实施例还提供的一种任务调度装置,还可以包括:
[0097] 预分配模块,用于将全部任务划分成第一预设数量个任务队列,并为每个任务队 列分配第二预设数量个用于对该任务队列中的任务进行处理的工作槽。
[0098] 本发明实施例还提供的一种任务调度装置,计算模块可以包括:
[0099] 计算单元,用于按照下列公式计算任一任务队列的资源消耗特征:
[0100] =r9U xTm +rme)nxTmetn +rbm4 ^Tban(l
[0101] 其中,.表示任一任务队列的资源消耗特征,Tcpu表示该任务队列中正在运行的 任务的CPU占用率的平均值,rcpu表示Tcpu所占的权重,Tmem表示该任务队列中正在运行的任 务的内存占用率的平均值,表示W斤占的权重,Tband表示该任务队列中正在运行的任 务的带宽占用率的平均值,r band表示Tband所占的权重。
[0102] 本发明实施例还提供的一种任务调度装置,选取单元可以包括:
[01 03]计算子单元,用于按照下列公式计算工作节点的能力特征:
[0105] 其中,Nresource表示工作节点的能力特征,Ucpu表示工作节点的CPU主频,Wc表示U cpu 所占的权重,Uman表示工作节点的内存大小,Wm表示Uman所占的权重,Udisk表示工作节点的硬 盘大小,Wd表示Udisk所占的权重,Uband表示工作节点的带宽大小,Wb表示Uban