一種任務調度方法及裝置的制造方法
【技術領域】
[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占用率、內存占用率及帶寬占用率進行計算得到的,任一 任務隊列的剩余任務比例為該任務隊列中未運行任務與全部任務的比值;選取所述任務隊 列中其資源消耗特征及剩余任務比例的乘積不小于其他任務隊列的任務隊列為目標任務 隊列,并利用所述空閑工作槽對所述目標任務隊列中的未運行任務進行處理。與現有技術 相比,本申請公開的上述技術方案綜合考慮任一任務隊列中正在運行的任務的資源消耗 (即資源消耗特征)及該任務隊列中未運行任務的情況(即剩余任務比例)確定該任務隊列 是否處于資源緊張狀態,資源消耗特征與剩余任務比例的乘積越大,表明對應任務隊列的 資源緊張狀態越嚴重,越需要及時對對應任務隊列進行處理,因此,選取任務隊列中資源緊 張狀態最嚴重的目