任務(wù)資源調(diào)度處理方法和系統(tǒng)的制作方法
【專利摘要】本申請公開了一種任務(wù)資源調(diào)度處理方法和系統(tǒng),包括:在任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機,每個虛擬機上設(shè)置一個虛擬任務(wù)執(zhí)行器;將任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為資源池和資源隊列,所述資源隊列中包括至少兩個資源塊,每個資源塊對應(yīng)劃分給本硬件節(jié)點上的一個虛擬任務(wù)執(zhí)行器使用,資源池對應(yīng)劃分給本硬件節(jié)點上的至少一個虛擬任務(wù)執(zhí)行器使用;在任務(wù)調(diào)度器接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN,判斷該MTN是否大于所述資源隊列中最大資源塊的資源量MRN,如果是則調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù),否則調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù)。本發(fā)明可以提高系統(tǒng)的資源利用率,提高任務(wù)處理效率。
【專利說明】任務(wù)資源調(diào)度處理方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本申請涉及計算機數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種任務(wù)資源調(diào)度處理方法和系 統(tǒng)。
【背景技術(shù)】
[0002] Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的計算系統(tǒng),海量數(shù)據(jù)業(yè)務(wù)越來越 多,Hadoop的使用也越來越廣泛。隨著單個集群的規(guī)模的日趨擴大(第一代Hadoop集群 大約能夠支持4000臺機器),如何提高集群資源使用率也逐漸成為人們關(guān)心的話題。提高 集群資源利用率的關(guān)鍵在于集群的調(diào)度。
[0003] Hdoop MapReduce任務(wù)調(diào)度系統(tǒng),簡稱Hadoop調(diào)度器,是hadoop的核心組件之一, 用于將系統(tǒng)中空閑的資源按一定策略分配給任務(wù)。在Hadoop中,調(diào)度器是一個可插拔的模 塊,用戶可以根據(jù)自己的實際應(yīng)用要求設(shè)計調(diào)度器。
[0004] 圖1為現(xiàn)有的一種典型的任務(wù)資源調(diào)度處理系統(tǒng)的示意圖。參見圖1,任務(wù)調(diào)度器 (JT,JobTracker)和任務(wù)執(zhí)行器(TT,TaskTracker)都分布在硬件的實體節(jié)點(計算機、月艮 務(wù)器等)上,而且每個硬件節(jié)點只能分配一個JT或TT。數(shù)據(jù)處理任務(wù)的任務(wù)請求會發(fā)送到 任務(wù)調(diào)度器上,任務(wù)調(diào)度器根據(jù)配置的調(diào)度策略,選擇某種調(diào)度方法對相應(yīng)的資源進行調(diào) 度,并調(diào)度特定的任務(wù)執(zhí)行器(TT,TaskTracker)執(zhí)行該處理任務(wù),即讀取相應(yīng)的數(shù)據(jù)進行 處理。所述的資源包括中央處理器(CPU)資源、內(nèi)存資源、磁盤資源等。
[0005] 現(xiàn)有技術(shù)中所述的調(diào)度方法主要包括以下幾種:
[0006] (1)先進先出(FIFO)調(diào)度方法:按照任務(wù)優(yōu)先級高低,再按照到達時間的先后選 擇被執(zhí)行的任務(wù)。
[0007] (2)計算能力調(diào)度方法(Capacity Scheduler):該調(diào)度方法支持多個隊列,每個 隊列可分配一定的資源量,每個隊列采用先進先出調(diào)度策略,為了防止同一個用戶的任務(wù) 獨占隊列中的資源,該調(diào)度方法會對同一用戶提交的任務(wù)所占用資源量進行限定。調(diào)度時, 首先按以下策略選擇一個合適隊列:計算每個隊列中正在運行的任務(wù)數(shù)與其應(yīng)該分的計算 資源之間的比值,選擇一個該比值小的隊列;然后按以下策略選擇隊列中一個任務(wù):按照 任務(wù)優(yōu)先級和提交時間順序選擇,同時考慮用戶資源量限制和內(nèi)存限制。
[0008] (3)公平調(diào)度方法(fair Scheduler):該調(diào)度方法支持多隊列多用戶,每一個隊 列中的資源量可以分配,同一個隊列中的任務(wù)公平共享隊列中所有資源。
[0009] 以上調(diào)度方法只列舉了 hadoop調(diào)度方法中的幾種,不一一列舉,基本都是把任務(wù) 分成隊列和把資源按照大小分成隊列,通過以上的調(diào)度方法調(diào)度資源。
[0010] 但是,現(xiàn)有技術(shù)存在如下缺點:
[0011] 現(xiàn)有技術(shù)中的調(diào)度系統(tǒng)中的每個處理節(jié)點必須是實體機硬件,并且任務(wù)調(diào)度器所 在節(jié)點和任務(wù)執(zhí)行器所在節(jié)點都是必須在實體硬件節(jié)點上,且每個硬件節(jié)點都只能分配一 個任務(wù)調(diào)度器或任務(wù)執(zhí)行器,在調(diào)度任務(wù)時,即使任務(wù)占用的資源量很小,也要占用一個硬 件節(jié)點來單獨處理該任務(wù),其它任務(wù)需要在任務(wù)隊列中排隊等候,這就導(dǎo)致硬件節(jié)點中有 大量的資源處于空閑狀態(tài),整個系統(tǒng)的資源利用效率非常低下,任務(wù)處理效率低下。
【發(fā)明內(nèi)容】
[0012] 有鑒于此,本發(fā)明的主要目的在于提供一種任務(wù)資源調(diào)度處理方法和系統(tǒng),以提 高系統(tǒng)的資源利用率,提高任務(wù)處理效率。
[0013] 本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0014] 一種任務(wù)資源調(diào)度處理方法,包括:
[0015] 在任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機,每個虛擬機上設(shè)置一個虛擬任務(wù)執(zhí) 行器;
[0016] 將任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為資源池和資源隊列,所述資源隊列中包 括至少兩個資源塊,每個資源塊對應(yīng)劃分給本硬件節(jié)點上的一個虛擬任務(wù)執(zhí)行器使用,資 源池對應(yīng)劃分給本硬件節(jié)點上的至少一個虛擬任務(wù)執(zhí)行器使用;
[0017] 在任務(wù)調(diào)度器接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN,判斷該MTN是 否大于所述資源隊列中最大資源塊的資源量MRN,如果是則調(diào)用資源池對應(yīng)的一虛擬任務(wù) 執(zhí)行器處理該任務(wù),否則調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù)。
[0018] 優(yōu)選的,所述調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù),具 體包括:
[0019] 判斷所述資源隊列中的資源塊的被占用情況,調(diào)用未被占用的、且資源量大于等 于該任務(wù)MTN的一資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù),如果本資源隊列中資源量大 于等于該任務(wù)MTN的資源塊都被占用,則該任務(wù)等待該資源隊列,直到一資源量大于等于 該任務(wù)MTN的資源塊被釋放,則由該資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù)。
[0020] 優(yōu)選的,在調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行器處理任務(wù)時,如果該任務(wù)的MTN 大于該資源池的資源量,則進一步合并與本資源池同硬件節(jié)點的資源隊列中空閑的資源, 供該虛擬任務(wù)執(zhí)行器使用,在任務(wù)處理完畢后釋放所合并的資源。
[0021] 優(yōu)選的,監(jiān)控所述虛擬任務(wù)執(zhí)行器,若虛擬任務(wù)執(zhí)行器故障,判斷該虛擬任務(wù)執(zhí)行 器對應(yīng)的資源是否不足,若不足則為該虛擬任務(wù)執(zhí)行器劃撥指定數(shù)量的資源。
[0022] 優(yōu)選的,在任務(wù)調(diào)度硬件節(jié)點上安裝虛擬機,所述任務(wù)調(diào)度器為設(shè)置在該虛擬機 上的虛擬任務(wù)調(diào)度器。
[0023] 優(yōu)選的,在任務(wù)調(diào)度硬件節(jié)點上安裝兩個虛擬機,每個虛擬機上設(shè)置一個虛擬任 務(wù)調(diào)度器,一個為主虛擬任務(wù)調(diào)度器,另一個為備虛擬任務(wù)調(diào)度器;
[0024] 監(jiān)控所述主虛擬任務(wù)調(diào)度器,若出現(xiàn)故障,則啟動備虛擬任務(wù)調(diào)度器,將該備虛擬 任務(wù)調(diào)度器切換為主虛擬任務(wù)調(diào)度器。
[0025] 一種任務(wù)資源調(diào)度處理系統(tǒng),包括:
[0026] 任務(wù)執(zhí)行硬件節(jié)點,該任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機,每個虛擬機上 設(shè)置一個虛擬任務(wù)執(zhí)行器;所述任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為資源池和資源隊 列,所述資源隊列中包括至少兩個資源塊,每個資源塊對應(yīng)劃分給本硬件節(jié)點上的一個虛 擬任務(wù)執(zhí)行器使用,資源池對應(yīng)劃分給本硬件節(jié)點上的至少一個虛擬任務(wù)執(zhí)行器使用;
[0027] 任務(wù)調(diào)度器,用于接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN,判斷該 MTN是否大于所述資源隊列中最大資源塊的資源量MRN,如果是則調(diào)用資源池對應(yīng)的一虛 擬任務(wù)執(zhí)行器處理該任務(wù),否則調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該 任務(wù)。
[0028] 優(yōu)選的,該系統(tǒng)進一步包括任務(wù)執(zhí)行器的監(jiān)控器,用于監(jiān)控所述虛擬任務(wù)執(zhí)行器, 若虛擬任務(wù)執(zhí)行器故障,判斷該虛擬任務(wù)執(zhí)行器對應(yīng)的資源是否不足,若不足則觸發(fā)所述 調(diào)度器為該虛擬任務(wù)執(zhí)行器劃撥指定數(shù)量的資源。
[0029] 優(yōu)選的,所述任務(wù)調(diào)度器為設(shè)置在任務(wù)調(diào)度硬件節(jié)點的虛擬機上的虛擬任務(wù)調(diào)度 器。
[0030] 優(yōu)選的,所述虛擬任務(wù)調(diào)度器有兩個,一個為主虛擬任務(wù)調(diào)度器,另一個為備虛擬 任務(wù)調(diào)度器;該系統(tǒng)進一步包括任務(wù)調(diào)度器的監(jiān)控器,用于監(jiān)控所述主虛擬任務(wù)調(diào)度器,若 出現(xiàn)故障,則啟動備虛擬任務(wù)調(diào)度器,將該備虛擬任務(wù)調(diào)度器切換為主虛擬任務(wù)調(diào)度器。
[0031] 相對于現(xiàn)有技術(shù),本發(fā)明在任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機,每個虛擬 機上設(shè)置一個虛擬任務(wù)執(zhí)行器;并且將任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為資源池和 資源隊列,所述資源隊列中包括至少兩個資源塊,每個資源塊對應(yīng)劃分給本硬件節(jié)點上的 一個虛擬任務(wù)執(zhí)行器使用,資源池對應(yīng)劃分給本硬件節(jié)點上的至少一個虛擬任務(wù)執(zhí)行器使 用;在任務(wù)調(diào)度器接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN,判斷該MTN是否大 于所述資源隊列中最大資源塊的資源量MRN,如果是則調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行 器處理該任務(wù),否則調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù)。這樣 采用虛擬化的方式,將硬件節(jié)點的硬件資源進一步劃分為多份資源,并可以根據(jù)任務(wù)所需 資源量的大小來選擇由哪一份資源對應(yīng)的虛擬任務(wù)執(zhí)行器來處理任務(wù),這樣一個硬件節(jié)點 可以同時處理多個任務(wù),不但提高了任務(wù)處理的吞吐量,而且提高了硬件節(jié)點中資源的利 用率,提高了任務(wù)處理效率。
【專利附圖】
【附圖說明】
[0032] 圖1為現(xiàn)有的一種典型的任務(wù)資源調(diào)度處理系統(tǒng)的示意圖;
[0033] 圖2為本發(fā)明所述任務(wù)資源調(diào)度方法的一種流程圖;
[0034] 圖3為本發(fā)明所述的一種任務(wù)調(diào)度器進行任務(wù)資源調(diào)度的一種示意圖;
[0035] 圖4為本發(fā)明所述任務(wù)資源調(diào)度處理系統(tǒng)的一種組成示意圖;
[0036] 圖5為本發(fā)明所述任務(wù)資源調(diào)度處理系統(tǒng)的有一種組成示意圖。
【具體實施方式】
[0037] 下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細(xì)的說明。
[0038] 圖2為本發(fā)明所述任務(wù)資源調(diào)度方法的一種流程圖。參見圖2,該方法主要包括:
[0039] 步驟201、在任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機(VM),每個虛擬機上設(shè)置 一個虛擬任務(wù)執(zhí)行器(TT)。
[0040] 所述任務(wù)執(zhí)行硬件節(jié)點是指某一具體的數(shù)據(jù)處理節(jié)點,如計算機節(jié)點、路由器、或 其它硬件數(shù)據(jù)處理設(shè)備等。在一個Hadoop系統(tǒng)中,該任務(wù)執(zhí)行硬件節(jié)點可能不止一個,可 以有多個任務(wù)執(zhí)行硬件節(jié)點組成集群。
[0041] 所述虛擬機是指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一個完全隔離 環(huán)境中的完整計算機系統(tǒng)。通過虛擬機技術(shù),技術(shù)人員可以在一臺物理計算機上模擬出另 一臺或多臺虛擬的計算機,這些虛擬機完全就像真正的計算機那樣進行工作。
[0042] 所述在任務(wù)執(zhí)行硬件節(jié)點的每個虛擬機上,都會設(shè)置一個任務(wù)執(zhí)行器,其設(shè)置方 法同在物理硬件節(jié)點上的設(shè)置方法,由于該任務(wù)執(zhí)行器設(shè)置在虛擬機上,因此又稱為虛擬 任務(wù)執(zhí)行器,該虛擬任務(wù)執(zhí)行器用來處理任務(wù)調(diào)度器所調(diào)度來的任務(wù)。
[0043] 步驟202、將任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為資源池和資源隊列,所述資源 隊列中包括至少兩個資源塊,每個資源塊對應(yīng)劃分給本硬件節(jié)點上的一個虛擬任務(wù)執(zhí)行器 使用,資源池對應(yīng)劃分給本硬件節(jié)點上的至少一個虛擬任務(wù)執(zhí)行器使用。
[0044] 所述硬件資源包括:CPU資源、內(nèi)存資源、磁盤資源等。具體劃分時,可以過一定比 例計算資源總和,然后劃分成兩部分利用,一部分劃分成資源隊列,該資源隊列由至少兩個 更小的資源塊組成,每個資源塊對應(yīng)分配給本硬件節(jié)點上的一個虛擬任務(wù)執(zhí)行器使用,該 資源隊列用來執(zhí)行小任務(wù),大小相當(dāng)?shù)娜蝿?wù)或者同一個任務(wù)的多次執(zhí)行;一部分劃分成資 源池,該資源池不再進一步劃分資源塊,而是分配給至少一個虛擬TT,通常為多個虛擬TT, 共同使用,用來執(zhí)行消耗資源比較多的任務(wù)。這樣的劃分方式可以提高由于任務(wù)大小對資 源量需要不同而帶來的機器資源使用率的有效利用,提高了整個集群處理大量任務(wù)的性 能。
[0045] 步驟203、在任務(wù)調(diào)度器接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN,通 常該MTN是該任務(wù)所需要的最大資源量,判斷該MTN是否大于所述資源隊列中最大資源塊 的資源量MRN,如果是則調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù),否則調(diào)用資源隊 列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù)。
[0046] 在執(zhí)行上述步驟201和202后,在所述任務(wù)調(diào)度器上需要存儲系統(tǒng)中各個任務(wù)執(zhí) 行硬件節(jié)點上的所述資源池信息、資源隊列信息、資源隊列中資源塊的資源量信息、以及資 源池和資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器信息。例如具體的,需要存儲:所述每個資源池所屬 的任務(wù)執(zhí)行硬件節(jié)點ID,該資源池對應(yīng)的虛擬TT的ID,資源隊列所屬的任務(wù)執(zhí)行硬件節(jié)點 ID,該資源隊列包括的資源塊的ID、該資源塊的資源量、以及該資源塊對應(yīng)的虛擬TT的ID 等信息。
[0047] 圖3為本發(fā)明所述的一種任務(wù)調(diào)度器進行任務(wù)資源調(diào)度的一種示意圖。參見圖3, 在步驟203中,用戶隊列中的用戶形成的任務(wù)組成任務(wù)隊列,向任務(wù)調(diào)度器發(fā)起任務(wù)請求。 任務(wù)調(diào)度器在收到任務(wù)請求后,會根據(jù)該任務(wù)的種類、內(nèi)容等信息確定該任務(wù)所需要的資 源量MTN,然后判斷該MTN是否大于所存儲的資源隊列中最大資源塊的資源量MRN,如果是 則說明該任務(wù)所需的資源量較大,因此利用預(yù)定調(diào)度策略從多個任務(wù)執(zhí)行硬件節(jié)點中的資 源池中選擇一個資源池(資源池的資源量較大,比較適合處理大任務(wù)量的任務(wù)),根據(jù)任務(wù) 調(diào)度器上的存儲信息確定該資源池所屬的任務(wù)執(zhí)行硬件節(jié)點ID,再調(diào)用該資源池對應(yīng)的一 個虛擬任務(wù)執(zhí)行器(該虛擬任務(wù)執(zhí)行器在同一個任務(wù)執(zhí)行硬件節(jié)點上)來處理該任務(wù),通 常一個資源池會對應(yīng)多個虛擬任務(wù)執(zhí)行器,那么會根據(jù)預(yù)設(shè)的調(diào)度策略從中選擇一個虛擬 任務(wù)執(zhí)行器來處理該任務(wù);該虛擬任務(wù)執(zhí)行器在處理該任務(wù)的過程中所使用的資源為該資 源池中的資源。如果MTN小于等于MRN,則說明該任務(wù)的任務(wù)量較小,則利用預(yù)定的調(diào)度策 略從多個任務(wù)執(zhí)行硬件節(jié)點中的資源隊列中選擇一個資源隊列,確定該資源隊列所屬的任 務(wù)執(zhí)行硬件節(jié)點ID,調(diào)用該資源隊列中的一個資源塊對應(yīng)的一個虛擬任務(wù)執(zhí)行器(該虛擬 任務(wù)執(zhí)行器在同一個任務(wù)執(zhí)行硬件節(jié)點上)來處理該任務(wù);該虛擬任務(wù)執(zhí)行器在處理該任 務(wù)的過程中,所使用的資源僅為該資源塊中的資源,這樣就不會占用本任務(wù)執(zhí)行硬件節(jié)點 中的其它硬件資源,其它資源可以分配給其它任務(wù)使用,提高了資源的利用率。通過這種處 理,所述資源池可以用來執(zhí)行消耗資源比較多的任務(wù),所述資源隊列可以用來執(zhí)行小任務(wù), 大小相當(dāng)?shù)娜蝿?wù)或者同一個任務(wù)的多次執(zhí)行。鑒于這種資源隊列的使用方式,在大量不同 任務(wù)需要處理的情況下,有限的資源塊被不同任務(wù)合理的有序使用,一個硬件節(jié)點可以同 時處理多個任務(wù),大大增加了任務(wù)處理的吞吐量,提高資源利用率和任務(wù)的執(zhí)行效率。
[0048] 在進一步的優(yōu)選實施例中,所述調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行 器處理該任務(wù),具體包括:
[0049] 判斷所述資源隊列中的資源塊的被占用情況,調(diào)用未被占用的、且資源量大于等 于該任務(wù)MTN的一資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù),如果本資源隊列中資源量大 于等于該任務(wù)MTN的資源塊都被占用,則該任務(wù)等待該資源隊列,直到一資源量大于等于 該任務(wù)MTN的資源塊被釋放,則由該資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù)。通過這種 處理,可以把等待任務(wù)從任務(wù)隊列轉(zhuǎn)移到資源隊列,這樣可以進一步增加任務(wù)處理的吞吐 量,提高任務(wù)處理效率。
[0050] 在進一步的優(yōu)選實施例中,在調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行器處理任務(wù)時, 如果該任務(wù)的MTN大于該資源池的資源量,則進一步合并與本資源池同硬件節(jié)點的資源隊 列中空閑的資源,供該虛擬任務(wù)執(zhí)行器使用,在任務(wù)處理完畢后釋放所合并的資源。這樣可 以臨時處理超大任務(wù),保證對突發(fā)超大任務(wù)的正常處理。
[0051] 另外,本發(fā)明還可以對所述虛擬任務(wù)執(zhí)行器進行監(jiān)控,來實現(xiàn)容災(zāi)處理。具體實現(xiàn) 方案是:監(jiān)控所述虛擬任務(wù)執(zhí)行器,若虛擬任務(wù)執(zhí)行器故障,則判斷該虛擬任務(wù)執(zhí)行器對應(yīng) 的資源是否不足,若不足則為該虛擬任務(wù)執(zhí)行器劃撥指定數(shù)量的資源。所述劃撥可以是管 理員手動劃撥,或者可以是自動劃撥指定數(shù)量的資源。
[0052] 本發(fā)明中,不但所述任務(wù)執(zhí)行器可以采用虛擬機來設(shè)置成虛擬的任務(wù)執(zhí)行器,所 述任務(wù)調(diào)度器也可以采用虛擬機來設(shè)置。具體的方法是:在任務(wù)調(diào)度硬件節(jié)點上安裝虛擬 機,所述任務(wù)調(diào)度器為設(shè)置在該虛擬機上的虛擬任務(wù)調(diào)度器。
[0053] 為了進一步提高容災(zāi)性和健壯性,在進一步的優(yōu)選實施例中,本發(fā)明還可以在任 務(wù)調(diào)度硬件節(jié)點上安裝兩個虛擬機,每個虛擬機上設(shè)置一個虛擬任務(wù)調(diào)度器,一個為主虛 擬任務(wù)調(diào)度器,另一個為備虛擬任務(wù)調(diào)度器;并實時監(jiān)控所述主虛擬任務(wù)調(diào)度器,若出現(xiàn)故 障,則啟動備虛擬任務(wù)調(diào)度器,將該備虛擬任務(wù)調(diào)度器切換為主虛擬任務(wù)調(diào)度器。
[0054] 與上述方法對應(yīng),本發(fā)明還公開了一種任務(wù)資源調(diào)度處理系統(tǒng)。圖4為本發(fā)明所 述任務(wù)資源調(diào)度處理系統(tǒng)的一種組成示意圖。參見圖4,該任務(wù)資源調(diào)度處理系統(tǒng)包括任務(wù) 執(zhí)行硬件節(jié)點401和任務(wù)調(diào)度器402。
[0055] 所述任務(wù)執(zhí)行硬件節(jié)點401,即用于執(zhí)行任務(wù)的硬件數(shù)據(jù)處理設(shè)備,如計算機、月艮 務(wù)器、路由器等設(shè)備。所述任務(wù)執(zhí)行硬件節(jié)點的數(shù)量可以是一個,也可以是多個組成任務(wù)執(zhí) 行硬件節(jié)點集群。所述每個任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機,每個虛擬機上設(shè)置 一個虛擬任務(wù)執(zhí)行器;所述每個任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為兩部分,一部分為 資源池,另一部分為資源隊列。所述資源隊列中包括至少兩個資源塊,每個資源塊對應(yīng)劃分 給本硬件節(jié)點上的一個虛擬任務(wù)執(zhí)行器使用,所述資源池對應(yīng)劃分給本硬件節(jié)點上的至少 一個虛擬任務(wù)執(zhí)行器使用,如圖3所示。
[0056] 所述任務(wù)執(zhí)行硬件節(jié)點401會將本節(jié)點所劃分的資源池及其對應(yīng)的虛擬任務(wù)執(zhí) 行器信息、資源隊列及其資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器的信息通過心跳信令傳輸給任務(wù)調(diào) 度器402進行存儲。所述任務(wù)調(diào)度器402存儲系統(tǒng)中各個任務(wù)執(zhí)行硬件節(jié)點上的所述資源 池信息、資源隊列信息、資源隊列中資源塊的資源量信息、以及資源池和資源塊對應(yīng)的虛擬 任務(wù)執(zhí)行器信息。例如具體的,需要存儲:所述每個資源池所屬的任務(wù)執(zhí)行硬件節(jié)點ID,該 資源池對應(yīng)的虛擬TT的ID,資源隊列所屬的任務(wù)執(zhí)行硬件節(jié)點ID,該資源隊列包括的資源 塊的ID、該資源塊的資源量、以及該資源塊對應(yīng)的虛擬TT的ID等信息。
[0057] 所述任務(wù)調(diào)度器402,用于接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN, 判斷該MTN是否大于所述資源隊列中最大資源塊的資源量MRN,如果是則調(diào)度策略調(diào)用資 源池對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù),否則調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任 務(wù)執(zhí)行器處理該任務(wù)。
[0058] 具體的,如圖3所示,用戶隊列中的用戶形成的任務(wù)組成任務(wù)隊列,向任務(wù)調(diào)度器 發(fā)起任務(wù)請求。任務(wù)調(diào)度器在收到任務(wù)請求后,會根據(jù)該任務(wù)的種類、內(nèi)容等信息確定該任 務(wù)所需要的資源量MTN,然后判斷該MTN是否大于所存儲的資源隊列中最大資源塊的資源 量MRN,如果是則說明該任務(wù)所需的資源量較大,因此利用預(yù)定調(diào)度策略從多個任務(wù)執(zhí)行硬 件節(jié)點中的資源池中選擇一個資源池(資源池的資源量較大,比較適合處理大任務(wù)量的任 務(wù)),根據(jù)任務(wù)調(diào)度器上的存儲信息確定該資源池所屬的任務(wù)執(zhí)行硬件節(jié)點ID,再調(diào)用該 資源池對應(yīng)的一個虛擬任務(wù)執(zhí)行器(該虛擬任務(wù)執(zhí)行器在同一個任務(wù)執(zhí)行硬件節(jié)點上)來 處理該任務(wù),通常一個資源池會對應(yīng)多個虛擬任務(wù)執(zhí)行器,那么會根據(jù)預(yù)設(shè)的調(diào)度策略從 中選擇一個虛擬任務(wù)執(zhí)行器來處理該任務(wù);該虛擬任務(wù)執(zhí)行器在處理該任務(wù)的過程中所使 用的資源為該資源池中的資源。如果MTN小于等于MRN,則說明該任務(wù)的任務(wù)量較小,則利 用預(yù)定的調(diào)度策略從多個任務(wù)執(zhí)行硬件節(jié)點中的資源隊列中選擇一個資源隊列,確定該資 源隊列所屬的任務(wù)執(zhí)行硬件節(jié)點ID,調(diào)用該資源隊列中的一個資源塊對應(yīng)的一個虛擬任務(wù) 執(zhí)行器(該虛擬任務(wù)執(zhí)行器在同一個任務(wù)執(zhí)行硬件節(jié)點上)來處理該任務(wù);該虛擬任務(wù)執(zhí) 行器在處理該任務(wù)的過程中,所使用的資源僅為該資源塊中的資源,這樣就不會占用本任 務(wù)執(zhí)行硬件節(jié)點中的其它硬件資源,其它資源可以分配給其它任務(wù)使用,提高了資源的利 用率。通過這種處理,所述資源池可以用來執(zhí)行消耗資源比較多的任務(wù),所述資源隊列可以 用來執(zhí)行小任務(wù),大小相當(dāng)?shù)娜蝿?wù)或者同一個任務(wù)的多次執(zhí)行。鑒于這種資源隊列的使用 方式,在大量不同任務(wù)需要處理的情況下,有限的資源塊被不同任務(wù)合理的有序使用,一個 硬件節(jié)點可以同時處理多個任務(wù),大大增加了任務(wù)處理的吞吐量,提高資源利用率和任務(wù) 的執(zhí)行效率。
[0059] 在進一步的優(yōu)選實施例中,所述調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行 器處理該任務(wù),具體包括:
[0060] 判斷所述資源隊列中的資源塊的被占用情況,調(diào)用未被占用的、且資源量大于等 于該任務(wù)MTN的一資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù),如果本資源隊列中資源量大 于等于該任務(wù)MTN的資源塊都被占用,則該任務(wù)等待該資源隊列,直到一資源量大于等于 該任務(wù)MTN的資源塊被釋放,則由該資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù)。通過這種 處理,可以把等待任務(wù)從任務(wù)隊列轉(zhuǎn)移到資源隊列,這樣可以進一步增加任務(wù)處理的吞吐 量,提高任務(wù)處理效率。
[0061] 在進一步的優(yōu)選實施例中,在調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行器處理任務(wù)時, 如果該任務(wù)的MTN大于該資源池的資源量,則進一步合并與本資源池同硬件節(jié)點的資源隊 列中空閑的資源,供該虛擬任務(wù)執(zhí)行器使用,在任務(wù)處理完畢后釋放所合并的資源。這樣可 以臨時處理超大任務(wù),保證對突發(fā)超大任務(wù)的正常處理。
[0062] 圖5為本發(fā)明所述任務(wù)資源調(diào)度處理系統(tǒng)的有一種組成示意圖。參見圖5,該任務(wù) 資源調(diào)度處理系統(tǒng)中,所述任務(wù)調(diào)度器可以是設(shè)置在任務(wù)調(diào)度硬件節(jié)點的虛擬機上的虛擬 任務(wù)調(diào)度器。所述任務(wù)調(diào)度硬件節(jié)點可以有多個,從而組成任務(wù)調(diào)度硬件節(jié)點集群。
[0063] 進一步的實施例中,所述虛擬任務(wù)調(diào)度器可以有兩個,一個為主虛擬任務(wù)調(diào)度器 501,另一個為備虛擬任務(wù)調(diào)度器502,任務(wù)請求被發(fā)送到主虛擬任務(wù)調(diào)度器501進行處理。 但是這兩個虛擬任務(wù)調(diào)度器需要設(shè)置在不同的硬件節(jié)點上,以保證其健壯性。
[0064] 在該實施例中,該任務(wù)資源調(diào)度處理系統(tǒng)還進一步包括任務(wù)調(diào)度器的監(jiān)控器503, 用于監(jiān)控所述主虛擬任務(wù)調(diào)度器501,若出現(xiàn)故障,則啟動備虛擬任務(wù)調(diào)度器502,將該備 虛擬任務(wù)調(diào)度器切換為主虛擬任務(wù)調(diào)度器。所述任務(wù)調(diào)度器的監(jiān)控器也可以是多個,從而 組成任務(wù)調(diào)度器的監(jiān)控器集群。
[0065] 在進一步的實施例中,該任務(wù)資源調(diào)度處理系統(tǒng)還進一步包括任務(wù)執(zhí)行器的監(jiān)控 器504,用于監(jiān)控所述虛擬任務(wù)執(zhí)行器,若虛擬任務(wù)執(zhí)行器故障,判斷該虛擬任務(wù)執(zhí)行器對 應(yīng)的資源是否不足,若不足則觸發(fā)所述調(diào)度器為該虛擬任務(wù)執(zhí)行器劃撥指定數(shù)量的資源。 所述任務(wù)執(zhí)行器監(jiān)控器的數(shù)量也可以是多個,從而組成任務(wù)執(zhí)行器的監(jiān)控器集群。
[0066] 本發(fā)明所述的方法和系統(tǒng)可以應(yīng)用在Hdoop系統(tǒng)中,當(dāng)然也可以應(yīng)用在其它類似 的分布式處理的計算系統(tǒng)。
[〇〇67] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1. 一種任務(wù)資源調(diào)度處理方法,其特征在于,包括: 在任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機,每個虛擬機上設(shè)置一個虛擬任務(wù)執(zhí)行 器; 將任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為資源池和資源隊列,所述資源隊列中包括至 少兩個資源塊,每個資源塊對應(yīng)劃分給本硬件節(jié)點上的一個虛擬任務(wù)執(zhí)行器使用,資源池 對應(yīng)劃分給本硬件節(jié)點上的至少一個虛擬任務(wù)執(zhí)行器使用; 在任務(wù)調(diào)度器接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN,判斷該MTN是否大 于所述資源隊列中最大資源塊的資源量MRN,如果是則調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行 器處理該任務(wù),否則調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述調(diào)用資源隊列中的資源塊對應(yīng)的一 虛擬任務(wù)執(zhí)行器處理該任務(wù),具體包括: 判斷所述資源隊列中的資源塊的被占用情況,調(diào)用未被占用的、且資源量大于等于該 任務(wù)MTN的一資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù),如果本資源隊列中資源量大于等 于該任務(wù)MTN的資源塊都被占用,則該任務(wù)等待該資源隊列,直到一資源量大于等于該任 務(wù)MTN的資源塊被釋放,則由該資源塊對應(yīng)的虛擬任務(wù)執(zhí)行器處理該任務(wù)。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于, 在調(diào)用資源池對應(yīng)的一虛擬任務(wù)執(zhí)行器處理任務(wù)時,如果該任務(wù)的MTN大于該資源池 的資源量,則進一步合并與本資源池同硬件節(jié)點的資源隊列中空閑的資源,供該虛擬任務(wù) 執(zhí)行器使用,在任務(wù)處理完畢后釋放所合并的資源。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,監(jiān)控所述虛擬任務(wù)執(zhí)行器,若虛擬任務(wù)執(zhí) 行器故障,判斷該虛擬任務(wù)執(zhí)行器對應(yīng)的資源是否不足,若不足則為該虛擬任務(wù)執(zhí)行器劃 撥指定數(shù)量的資源。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在任務(wù)調(diào)度硬件節(jié)點上安裝虛擬機,所述 任務(wù)調(diào)度器為設(shè)置在該虛擬機上的虛擬任務(wù)調(diào)度器。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,在任務(wù)調(diào)度硬件節(jié)點上安裝兩個虛擬機, 每個虛擬機上設(shè)置一個虛擬任務(wù)調(diào)度器,一個為主虛擬任務(wù)調(diào)度器,另一個為備虛擬任務(wù) 調(diào)度器; 監(jiān)控所述主虛擬任務(wù)調(diào)度器,若出現(xiàn)故障,則啟動備虛擬任務(wù)調(diào)度器,將該備虛擬任務(wù) 調(diào)度器切換為主虛擬任務(wù)調(diào)度器。
7. -種任務(wù)資源調(diào)度處理系統(tǒng),其特征在于,包括: 任務(wù)執(zhí)行硬件節(jié)點,該任務(wù)執(zhí)行硬件節(jié)點上安裝至少兩個虛擬機,每個虛擬機上設(shè)置 一個虛擬任務(wù)執(zhí)行器;所述任務(wù)執(zhí)行硬件節(jié)點上的硬件資源劃分為資源池和資源隊列,所 述資源隊列中包括至少兩個資源塊,每個資源塊對應(yīng)劃分給本硬件節(jié)點上的一個虛擬任務(wù) 執(zhí)行器使用,資源池對應(yīng)劃分給本硬件節(jié)點上的至少一個虛擬任務(wù)執(zhí)行器使用; 任務(wù)調(diào)度器,用于接收到任務(wù)請求后,確定該任務(wù)所需要的資源量MTN,判斷該MTN是 否大于所述資源隊列中最大資源塊的資源量MRN,如果是則調(diào)用資源池對應(yīng)的一虛擬任務(wù) 執(zhí)行器處理該任務(wù),否則調(diào)用資源隊列中的資源塊對應(yīng)的一虛擬任務(wù)執(zhí)行器處理該任務(wù)。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括任務(wù)執(zhí)行器的監(jiān)控器, 用于監(jiān)控所述虛擬任務(wù)執(zhí)行器,若虛擬任務(wù)執(zhí)行器故障,判斷該虛擬任務(wù)執(zhí)行器對應(yīng)的資 源是否不足,若不足則觸發(fā)所述調(diào)度器為該虛擬任務(wù)執(zhí)行器劃撥指定數(shù)量的資源。
9. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述任務(wù)調(diào)度器為設(shè)置在任務(wù)調(diào)度硬件 節(jié)點的虛擬機上的虛擬任務(wù)調(diào)度器。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述虛擬任務(wù)調(diào)度器有兩個,一個為主虛擬任務(wù)調(diào)度器,另一個為備虛擬任務(wù)調(diào)度 器; 該系統(tǒng)進一步包括任務(wù)調(diào)度器的監(jiān)控器,用于監(jiān)控所述主虛擬任務(wù)調(diào)度器,若出現(xiàn)故 障,則啟動備虛擬任務(wù)調(diào)度器,將該備虛擬任務(wù)調(diào)度器切換為主虛擬任務(wù)調(diào)度器。
【文檔編號】G06F9/50GK104102548SQ201410379486
【公開日】2014年10月15日 申請日期:2014年8月4日 優(yōu)先權(quán)日:2014年8月4日
【發(fā)明者】陳偉 申請人:北京京東尚科信息技術(shù)有限公司