一種任務(wù)調(diào)度方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明提出了一種任務(wù)調(diào)度方法,該方法包括:對(duì)用戶的任意一個(gè)任務(wù)設(shè)置相應(yīng)的CPU資源需求和內(nèi)存資源需求,并預(yù)測(cè)該任務(wù)的完成時(shí)間;預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同;根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間;在預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍內(nèi),改變?cè)O(shè)置的CPU資源需求和內(nèi)存資源需求,重復(fù)上述步驟,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。本發(fā)明能夠降低用戶在YARN平臺(tái)提交作業(yè)時(shí)設(shè)置CPU資源需求和內(nèi)存資源需求的主觀偏差,從而縮短作業(yè)的完成時(shí)間,提供YARN平臺(tái)的整體運(yùn)行效率。
【專(zhuān)利說(shuō)明】一種任務(wù)調(diào)度方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及第2代Hadoop中YARN平臺(tái)的作業(yè)優(yōu)化技術(shù),尤其涉及一種任務(wù)調(diào)度方法和裝置。
【背景技術(shù)】
[0002]Hadoop是當(dāng)前最流行的大數(shù)據(jù)處理工具。它實(shí)現(xiàn)了一套分布式存儲(chǔ)與計(jì)算系統(tǒng),特別適合太字節(jié)(TB, Terabyte)、PB (Petabyte)級(jí)的數(shù)據(jù)處理,并且借助于MapReduce框架,可以使用戶輕松寫(xiě)出分布式程序,將傳統(tǒng)業(yè)務(wù)遷移到分布式平臺(tái)上來(lái)。
[0003]目前商業(yè)化的產(chǎn)品多是基于第I代Hadoop的技術(shù)實(shí)現(xiàn),在使用中存在單點(diǎn)瓶頸、資源分配不靈活、編程框架單一等問(wèn)題。正在研發(fā)中的第2代Hadoop,為克服上述缺點(diǎn),構(gòu)建了新的底層平臺(tái)YARN,負(fù)責(zé)集群的資源分配及任務(wù)調(diào)度;YARN剝離MapReduce框架成為獨(dú)立的可選組件,不再與平臺(tái)耦合。在新的資源調(diào)度平臺(tái)YARN上,采用的調(diào)度算法是“支配資源公平”(DRF, Dominant Resource Fairness)。將用戶提交的程序稱為作業(yè),每個(gè)作業(yè)將會(huì)被拆分成大量任務(wù)運(yùn)行。用戶在提交作業(yè)時(shí),需要指定每個(gè)任務(wù)運(yùn)行時(shí)占用的CPU資源和內(nèi)存資源。YARN平臺(tái)上的調(diào)度器會(huì)依次計(jì)算每個(gè)任務(wù)的CPU資源占CPU總資源的比值和內(nèi)存資源占內(nèi)存總資源量的比值,并取其比值大者作為該類(lèi)子任務(wù)的“支配份額比”(Dominant Share)。在多個(gè)用戶同時(shí)提交多個(gè)作業(yè)時(shí),調(diào)度器會(huì)選擇性地啟動(dòng)各類(lèi)子任務(wù),以保證各用戶的總支配份額比相同。
[0004]上述調(diào)度算法中,用戶在提交作業(yè)時(shí),需要設(shè)置CPU資源需求和內(nèi)存資源需求,設(shè)置的CPU資源需求或內(nèi)存資源需求直接影響到作業(yè)的完成時(shí)間。設(shè)置的CPU資源需求或內(nèi)存資源需求越大,每個(gè)任務(wù)運(yùn)行時(shí)間越短,但受到平臺(tái)調(diào)度器的限制,同時(shí)運(yùn)行的任務(wù)數(shù)會(huì)減少;設(shè)置的CPU資源需求或內(nèi)存資源需求越少,每個(gè)任務(wù)運(yùn)行時(shí)間越長(zhǎng),但同時(shí)運(yùn)行的任務(wù)數(shù)量會(huì)變多。因此,資源需求與任務(wù)完成時(shí)間及平臺(tái)并發(fā)任務(wù)數(shù)均不是線性關(guān)系。然而目前參數(shù)的設(shè)置主要依賴于用戶經(jīng)驗(yàn),對(duì)于缺乏豐富經(jīng)驗(yàn)的用戶來(lái)說(shuō),并不能保證合理的參數(shù)設(shè)置,從而導(dǎo)致作業(yè)運(yùn)行時(shí)間明顯大于理論最優(yōu)值。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問(wèn)題,本發(fā)明提出了一種任務(wù)調(diào)度方法和裝置,能夠消除設(shè)置CPU資源需求和內(nèi)存資源需求的主觀性,從而縮短作業(yè)完成時(shí)間。
[0006]為了達(dá)到上述目的,本發(fā)明提出了一種任務(wù)調(diào)度方法,該方法包括:
[0007]對(duì)用戶的任意一個(gè)任務(wù)設(shè)置相應(yīng)的CPU資源需求和內(nèi)存資源需求,并預(yù)測(cè)該任務(wù)的完成時(shí)間;
[0008]預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同;
[0009]根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間;[0010]在預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍內(nèi),改變?cè)O(shè)置的CPU資源需求和內(nèi)存資源需求,重復(fù)上述步驟,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。
[0011]優(yōu)選地,所述預(yù)測(cè)任務(wù)的完成時(shí)間包括:
[0012]生成實(shí)例庫(kù),實(shí)例庫(kù)保存有實(shí)例的特征值和該實(shí)例在不同的CPU資源需求和內(nèi)存資源需求時(shí)的運(yùn)行時(shí)間;
[0013]查找實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例;
[0014]計(jì)算查找到的實(shí)例的特征值和所述任務(wù)的特征值的相似度,將相似度最大的實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
[0015]優(yōu)選地,當(dāng)查找不到所述實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例時(shí),該方法還包括:
[0016]查找實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求或內(nèi)存資源需求相同的實(shí)例。
[0017]優(yōu)選地,所述特征值包括映射Map/化簡(jiǎn)Reduce、任務(wù)類(lèi)型、數(shù)據(jù)量和復(fù)雜度。
[0018]優(yōu)選地,當(dāng)查找不到所述實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求或內(nèi)存資源需求均相同的實(shí)例時(shí),該方法還包括:
[0019]根據(jù)所述任務(wù)的任務(wù)類(lèi)型將所述實(shí)例庫(kù)中的默認(rèn)實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
[0020]優(yōu)選地,所述支配份額比為用戶的CPU資源使用量/min(用戶的總CPU資源需求量,理論公平CPU資源量),和用戶的內(nèi)存資源使用量/min(用戶的總內(nèi)存資源需求量,理論公平內(nèi)存資源量)的最大值,其中,理論公平CPU資源量=全局CPU資源總量/用戶數(shù),理論公平內(nèi)存資源量=全局內(nèi)存資源總量/用戶數(shù);其中,min表示取最小值。
[0021]優(yōu)選地,所述根據(jù)資源分配比預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)包括:
[0022]當(dāng)所述支配份額比為用戶的CPU資源使用量/min (用戶的總CPU資源需求量,理論公平CPU資源量)時(shí),用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)=(用戶的總CPU資源需求量-用戶的CPU資源使用量)* (ι-CPU資源分配比)/任務(wù)的CPU資源需求;
[0023]當(dāng)所述支配份額比為用戶的內(nèi)存資源使用量/min(用戶的總內(nèi)存資源需求量,理論公平內(nèi)存資源量)時(shí),用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)=(用戶的總內(nèi)存資源需求量-用戶的內(nèi)存資源使用量)*(1-內(nèi)存資源分配比)/任務(wù)的內(nèi)存資源需求
[0024]優(yōu)選地,所述作業(yè)完成的總時(shí)間T為:
[0025]T = tN/k
[0026]其中,N為所述用戶的總?cè)蝿?wù)數(shù),t為預(yù)測(cè)的任務(wù)的完成時(shí)間,k為預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)。
[0027]本發(fā)明還提出了一種任務(wù)調(diào)度裝置,至少包括:
[0028]配置模塊,用于對(duì)用戶的任意一個(gè)任務(wù)設(shè)置相應(yīng)的CPU資源需求和內(nèi)存資源需求;
[0029]預(yù)測(cè)模塊,用于根據(jù)設(shè)置的任務(wù)的CPU資源需求和內(nèi)存資源需求,預(yù)測(cè)該任務(wù)的完成時(shí)間;預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同;
[0030]計(jì)算模塊,用于根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間;[0031]重復(fù)模塊,用于在預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍內(nèi),改變?cè)O(shè)置的CPU資源需求和內(nèi)存資源需求,將改變的CPU資源需求和內(nèi)存資源需求發(fā)送給預(yù)測(cè)模塊,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。
[0032]優(yōu)選地,還包括:
[0033]生成模塊,用于生成實(shí)例庫(kù),實(shí)例庫(kù)保存有實(shí)例的特征值和該實(shí)例在不同的CPU資源需求和內(nèi)存資源需求時(shí)的運(yùn)行時(shí)間;
[0034]所述預(yù)測(cè)模塊,具體用于:
[0035]查找實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例;計(jì)算查找到的實(shí)例的特征值和所述任務(wù)的特征值的相似度,將相似度最大的實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
[0036]優(yōu)選地,所述預(yù)測(cè)模塊,具體用于:
[0037]查找實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求或內(nèi)存資源需求相同的實(shí)例。
[0038]優(yōu)選地,所述預(yù)測(cè)模塊,具體用于:
[0039]根據(jù)所述任務(wù)的特征值中的任務(wù)類(lèi)型將所述實(shí)例庫(kù)中的默認(rèn)實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
[0040]優(yōu)選地,所述計(jì)算模塊,具體用于:
[0041]根據(jù)公式T = tN/k計(jì)算所述作業(yè)完成的總時(shí)間;
[0042]其中,T為所述作業(yè)完成的總時(shí)間,N為所述用戶的總?cè)蝿?wù)數(shù),t為預(yù)測(cè)的任務(wù)的完成時(shí)間,k為預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)。
[0043]與現(xiàn)有技術(shù)相比,本發(fā)明包括:對(duì)用戶的任意一個(gè)任務(wù)設(shè)置相應(yīng)的CPU資源需求和內(nèi)存資源需求,預(yù)測(cè)該任務(wù)的完成時(shí)間;預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同;根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間;改變?cè)O(shè)置的CPU資源需求和內(nèi)存資源需求,重復(fù)上述步驟,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。通過(guò)本發(fā)明的技術(shù)方案,能夠降低用戶在YARN平臺(tái)提交作業(yè)時(shí)設(shè)置CPU資源需求和內(nèi)存資源需求的主觀偏差,從而縮短作業(yè)的完成時(shí)間,提供YARN平臺(tái)的整體運(yùn)行效率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0044]下面對(duì)本發(fā)明實(shí)施例中的附圖進(jìn)行說(shuō)明,實(shí)施例中的附圖是用于對(duì)本發(fā)明的進(jìn)一步理解,與說(shuō)明書(shū)一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限制。
[0045]圖1為本發(fā)明提出的任務(wù)調(diào)度方法的流程圖;
[0046]圖2為本發(fā)明提出的預(yù)測(cè)任務(wù)的完成時(shí)間的方法流程圖;
[0047]圖3為本發(fā)明提出的任務(wù)調(diào)度裝置的組成結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0048]為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述,并不能用來(lái)限制本發(fā)明的保護(hù)范圍。
[0049]參見(jiàn)圖1,本發(fā)明提出了一種任務(wù)調(diào)度方法,包括:
[0050]步驟100、對(duì)用戶的任意一個(gè)任務(wù)設(shè)置相應(yīng)的CPU資源和內(nèi)存資源,預(yù)測(cè)該任務(wù)的完成時(shí)間。
[0051 ] 本步驟中,用戶將作業(yè)上傳到Y(jié)ARN平臺(tái),YARN平臺(tái)將作業(yè)拆分成N個(gè)相同的任務(wù),N為大于等于I的自然數(shù)。YARN對(duì)作業(yè)的拆分規(guī)則為現(xiàn)有技術(shù),不在本發(fā)明的保護(hù)范圍之內(nèi)。
[0052]參見(jiàn)圖2,本步驟中,預(yù)測(cè)任務(wù)的完成時(shí)間的方法包括:
[0053]步驟200、生成實(shí)例庫(kù),實(shí)例庫(kù)保存有實(shí)例的特征值和該實(shí)例在不同的CPU資源需求和內(nèi)存資源需求時(shí)的運(yùn)行時(shí)間。
[0054]本步驟中,特征值包括:
[0055](I)映射 Map/ 化簡(jiǎn) Reduce。
[0056]該參數(shù)將任務(wù)的資源需求分為Map和Reduce兩類(lèi),Map表示任務(wù)的內(nèi)存資源需求多于CPU資源需求,Reduce表示任務(wù)的CPU資源需求多于內(nèi)存資源需求。
[0057](2)任務(wù)類(lèi)型。
[0058]該參數(shù)表示任務(wù)具體的操作分類(lèi),例如數(shù)據(jù)庫(kù)檢索、文件排序等。
[0059](3)數(shù)據(jù)量。
[0060]該參數(shù)表示任務(wù)需要處理的數(shù)據(jù)規(guī)模。
[0061](4)復(fù)雜度。
[0062]該參數(shù)由用戶通過(guò)估計(jì)任務(wù)的復(fù)雜程度來(lái)確定。
[0063]本步驟中,可以采用數(shù)值形式來(lái)描述任務(wù)或?qū)嵗奶卣髦?,具體如何描述,本發(fā)明不作限定。例如,可以采用I比特來(lái)描述Map/Reduce,該比特為O時(shí),表示該實(shí)例為Map類(lèi)型,該比特為I時(shí),表示該實(shí)例為Reduce類(lèi)型。
[0064]步驟201、查找實(shí)例庫(kù)中與設(shè)置的任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例。
[0065]本步驟中,當(dāng)查找不到實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例時(shí),查找實(shí)例庫(kù)中與配置的任務(wù)的CPU資源需求或內(nèi)存資源需求均相同的實(shí)例。
[0066]當(dāng)查找不到實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求或內(nèi)存資源需求均相同的實(shí)例時(shí),根據(jù)任務(wù)的任務(wù)類(lèi)型將實(shí)例庫(kù)中的默認(rèn)實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
[0067]步驟202、計(jì)算查找到的實(shí)例的特征值和任務(wù)的特征值的相似度,將相似度最大的實(shí)例的運(yùn)行時(shí)間作為任務(wù)的完成時(shí)間。
[0068]本步驟中,如何計(jì)算查找到的實(shí)例的特征值和所述任務(wù)的特征值的相似度屬于現(xiàn)有技術(shù),不在本發(fā)明的保護(hù)范圍之內(nèi)。
[0069]步驟101、根據(jù)支配份額比預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同。
[0070]本步驟中,理想情況下,每個(gè)用戶的支配份額比和理論公平資源量相同,其中,理論公平資源量為總資源使用率和用戶數(shù)的比值;但在實(shí)際環(huán)境中,由于調(diào)度損耗等原因,只能讓支配份額比比盡可能接近理論公平資源量,使得每個(gè)用戶均能公平的使用系統(tǒng)資源,因此采用支配份額比來(lái)衡量用戶的資源使用情況,并預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)。
[0071 ] 本步驟中,支配份額比為用戶的CPU資源使用量/min (用戶的總CPU資源需求量,理論公平CPU資源量),和用戶的內(nèi)存資源使用量/min (用戶的總內(nèi)存資源需求量,理論公平內(nèi)存資源量)的最大值,其中,理論公平CPU (或內(nèi)存)資源量=全局CPU (或內(nèi)存)資源總量/用戶數(shù),那么,當(dāng)支配份額比為用戶的CPU資源使用量/min (用戶的總CPU資源需求量,理論公平CPU資源量)時(shí),用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)=(用戶的總CPU資源需求量-用戶的CPU資源使用量)*(1_CPU資源分配比)/任務(wù)的CPU資源需求;當(dāng)支配份額比為用戶的內(nèi)存資源使用量/min(用戶的總內(nèi)存資源需求量,理論公平內(nèi)存資源量)時(shí),用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)=(用戶的總內(nèi)存資源需求量-用戶的內(nèi)存資源使用量)*(1_內(nèi)存資源分配比)/任務(wù)的內(nèi)存資源需求;其中,min表示取最小值。
[0072]步驟102、根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間。
[0073]本步驟中,作業(yè)完成的總時(shí)間T為:
[0074]T = tN/k
[0075]其中,N為用戶的總?cè)蝿?wù)數(shù),t為預(yù)測(cè)的任務(wù)的完成時(shí)間,k為預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)。
[0076]步驟103、在預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍內(nèi),改變配置的CPU資源需求和內(nèi)存資源需求,重復(fù)上述步驟,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。
[0077]本步驟中,預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍由用戶根據(jù)經(jīng)驗(yàn)來(lái)確定。
[0078]本步驟中,由于作業(yè)完成的總時(shí)間與配置的CPU資源需求或內(nèi)存資源需求是類(lèi)拋物線的關(guān)系,因此,通過(guò)正向或反向搜索,就能得到作業(yè)完成的總時(shí)間最小時(shí)配置的CPU資源需求和內(nèi)存資源需求。過(guò)不斷地迭代計(jì)算,當(dāng)計(jì)算得到的作業(yè)的完成時(shí)間與上一次計(jì)算結(jié)果的差值小于0.01%時(shí),便認(rèn)為得到最小作業(yè)完成時(shí)間,結(jié)束該步驟。
[0079]參見(jiàn)圖3,本發(fā)明的還提出一種任務(wù)調(diào)度裝置,至少包括:
[0080]配置模塊,用于對(duì)用戶的任意一個(gè)任務(wù)配置相應(yīng)的CPU資源需求和內(nèi)存資源需求;
[0081]預(yù)測(cè)模塊,用于根據(jù)配置的任務(wù)的CPU資源需求和內(nèi)存資源需求,預(yù)測(cè)該任務(wù)的完成時(shí)間;根據(jù)資源分配比預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同;
[0082]計(jì)算模塊,用于根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間;
[0083]重復(fù)模塊,用于在預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍內(nèi),改變配置的CPU資源需求和內(nèi)存資源需求,將改變的CPU資源需求和內(nèi)存資源需求發(fā)送給預(yù)測(cè)模塊,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。
[0084]上述任務(wù)調(diào)度裝置中,還包括:
[0085]生成模塊,用于生成實(shí)例庫(kù),實(shí)例庫(kù)保存有實(shí)例的特征值和該實(shí)例在不同的CPU資源需求和內(nèi)存資源需求時(shí)的運(yùn)行時(shí)間;
[0086]預(yù)測(cè)模塊,具體用于:
[0087]查找實(shí)例庫(kù)中與配置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例;計(jì)算查找到的實(shí)例的特征值和所述任務(wù)的特征值的相似度,將相似度最大的實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
[0088]上述任務(wù)調(diào)度裝置中,預(yù)測(cè)模塊,具體用于:
[0089]查找實(shí)例庫(kù)中與配置的任務(wù)的CPU資源需求或內(nèi)存資源需求相同的實(shí)例。
[0090]上述任務(wù)調(diào)度裝置中,預(yù)測(cè)模塊,具體用于:
[0091]根據(jù)任務(wù)的特征值中的任務(wù)類(lèi)型將所述實(shí)例庫(kù)中的默認(rèn)實(shí)例的運(yùn)行時(shí)間作為任務(wù)的完成時(shí)間。
[0092]上述任務(wù)調(diào)度裝置中,計(jì)算模塊,具體用于:
[0093]根據(jù)公式T = tN/k計(jì)算作業(yè)完成的總時(shí)間;
[0094]其中,T為作業(yè)完成的總時(shí)間,N為用戶的總?cè)蝿?wù)數(shù),t為預(yù)測(cè)的任務(wù)的完成時(shí)間,k為預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)。
[0095]本發(fā)明能夠降低用戶在YARN平臺(tái)提交作業(yè)時(shí)設(shè)置CPU資源需求和內(nèi)存資源需求的主觀偏差,從而縮短作業(yè)的完成時(shí)間,提供YARN平臺(tái)的整體運(yùn)行效率。
[0096]需要說(shuō)明的是,以上所述的實(shí)施例僅是為了便于本領(lǐng)域的技術(shù)人員理解而已,并不用于限制本發(fā)明的保護(hù)范圍,在不脫離本發(fā)明的發(fā)明構(gòu)思的前提下,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明所做出的任何顯而易見(jiàn)的替換和改進(jìn)等均在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種任務(wù)調(diào)度方法,其特征在于,該方法包括: 對(duì)用戶的任意一個(gè)任務(wù)設(shè)置相應(yīng)的CPU資源需求和內(nèi)存資源需求,并預(yù)測(cè)該任務(wù)的完成時(shí)間; 預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同; 根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間; 在預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍內(nèi),改變?cè)O(shè)置的CPU資源需求和內(nèi)存資源需求,重復(fù)上述步驟,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。
2.根據(jù)權(quán)利要求1所述的任務(wù)調(diào)度方法,所述預(yù)測(cè)任務(wù)的完成時(shí)間包括: 生成實(shí)例庫(kù),實(shí)例庫(kù)保存有實(shí)例的特征值和該實(shí)例在不同的CPU資源需求和內(nèi)存資源需求時(shí)的運(yùn)行時(shí)間; 查找實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例; 計(jì)算查找到的實(shí)例的特征值 和所述任務(wù)的特征值的相似度,將相似度最大的實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
3.根據(jù)權(quán)利要求2所述的任務(wù)調(diào)度方法,當(dāng)查找不到所述實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例時(shí),該方法還包括: 查找實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求或內(nèi)存資源需求相同的實(shí)例。
4.根據(jù)權(quán)利要求2所述的任務(wù)調(diào)度方法,所述特征值包括映射Map/化簡(jiǎn)Reduce、任務(wù)類(lèi)型、數(shù)據(jù)量和復(fù)雜度。
5.根據(jù)權(quán)利要求4所述的任務(wù)調(diào)度方法,當(dāng)查找不到所述實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求或內(nèi)存資源需求均相同的實(shí)例時(shí),該方法還包括: 根據(jù)所述任務(wù)的任務(wù)類(lèi)型將所述實(shí)例庫(kù)中的默認(rèn)實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
6.根據(jù)權(quán)利要求1所述的任務(wù)調(diào)度方法,所述支配份額比為用戶的CPU資源使用量/min (用戶的總CPU資源需求量,理論公平CPU資源量),和用戶的內(nèi)存資源使用量/min (用戶的總內(nèi)存資源需求量,理論公平內(nèi)存資源量)的最大值,其中,理論公平CPU資源量=全局CPU資源總量/用戶數(shù),理論公平內(nèi)存資源量=全局內(nèi)存資源總量/用戶數(shù);其中,min表示取最小值。
7.根據(jù)權(quán)利要求6所述的任務(wù)調(diào)度方法,所述根據(jù)資源分配比預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)包括: 當(dāng)所述支配份額比為用戶的CPU資源使用量/min (用戶的總CPU資源需求量,理論公平CPU資源量)時(shí),用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)=(用戶的總CPU資源需求量-用戶的CPU資源使用量)*(1_CPU資源分配比)/任務(wù)的CPU資源需求; 當(dāng)所述支配份額比為用戶的內(nèi)存資源使用量/min(用戶的總內(nèi)存資源需求量,理論公平內(nèi)存資源量)時(shí),用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)=(用戶的總內(nèi)存資源需求量-用戶的內(nèi)存資源使用量)*(1_內(nèi)存資源分配比)/任務(wù)的內(nèi)存資源需求。
8.根據(jù)權(quán)利要求1所述的任務(wù)調(diào)度方法,所述作業(yè)完成的總時(shí)間T為:
T = tN/k 其中,N為所述用戶的總?cè)蝿?wù)數(shù),t為預(yù)測(cè)的任務(wù)的完成時(shí)間,k為預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)。
9.一種任務(wù)調(diào)度裝置,其特征在于,至少包括: 配置模塊,用于對(duì)用戶的任意一個(gè)任務(wù)設(shè)置相應(yīng)的CPU資源需求和內(nèi)存資源需求; 預(yù)測(cè)模塊,用于根據(jù)設(shè)置的任務(wù)的CPU資源需求和內(nèi)存資源需求,預(yù)測(cè)該任務(wù)的完成時(shí)間;預(yù)測(cè)用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù),使得YARN平臺(tái)中每一個(gè)用戶的支配份額比相同;計(jì)算模塊,用于根據(jù)用戶的總?cè)蝿?wù)數(shù)、預(yù)測(cè)的任務(wù)的完成時(shí)間和預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)計(jì)算作業(yè)完成的總時(shí)間; 重復(fù)模塊,用于在預(yù)設(shè)的CPU資源需求范圍和內(nèi)存資源需求范圍內(nèi),改變?cè)O(shè)置的CPU資源需求和內(nèi)存資源需求,將改變的CPU資源需求和內(nèi)存資源需求發(fā)送給預(yù)測(cè)模塊,直到計(jì)算得到的作業(yè)完成的總時(shí)間最小。
10.根據(jù)權(quán)利要求9所述的任務(wù)調(diào)度裝置,其特征在于,還包括: 生成模塊,用于生成實(shí)例庫(kù),實(shí)例庫(kù)保存有實(shí)例的特征值和該實(shí)例在不同的CPU資源需求和內(nèi)存資源需求時(shí)的運(yùn)行時(shí)間; 所述預(yù)測(cè)模塊,具體用于: 查找實(shí)例庫(kù)中與設(shè)置的所述任務(wù)的CPU資源需求和內(nèi)存資源需求均相同的實(shí)例;計(jì)算查找到的實(shí)例的特征值和所述任務(wù)的特征值的相似度,將相似度最大的實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
11.根據(jù)權(quán)利要求10所述的任務(wù)調(diào)度裝置,其特征在于,所述預(yù)測(cè)模塊,具體用于: 查找實(shí)例庫(kù)中與設(shè) 置的所述任務(wù)的CPU資源需求或內(nèi)存資源需求相同的實(shí)例。
12.根據(jù)權(quán)利要求10所述的任務(wù)調(diào)度裝置,其特征在于,所述預(yù)測(cè)模塊,具體用于: 根據(jù)所述任務(wù)的特征值中的任務(wù)類(lèi)型將所述實(shí)例庫(kù)中的默認(rèn)實(shí)例的運(yùn)行時(shí)間作為所述任務(wù)的完成時(shí)間。
13.根據(jù)權(quán)利要求9所述的任務(wù)調(diào)度裝置,其特征在于,所述計(jì)算模塊,具體用于: 根據(jù)公式T = tN/k計(jì)算所述作業(yè)完成的總時(shí)間; 其中,T為所述作業(yè)完成的總時(shí)間,N為所述用戶的總?cè)蝿?wù)數(shù),t為預(yù)測(cè)的任務(wù)的完成時(shí)間,k為預(yù)測(cè)的用戶能夠同時(shí)運(yùn)行的任務(wù)數(shù)。
【文檔編號(hào)】G06F9/50GK103729246SQ201310750655
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】劉璧怡 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司