數量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