本發(fā)明屬于云計(jì)算資源調(diào)度技術(shù)領(lǐng)域,更具體地,涉及一種容器云環(huán)境中流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度方法及系統(tǒng)。
背景技術(shù):
大數(shù)據(jù)時(shí)代下,社交網(wǎng)絡(luò)、在線購(gòu)物、物聯(lián)網(wǎng)等會(huì)產(chǎn)生大量的實(shí)時(shí)數(shù)據(jù)流,如何快速分析這些實(shí)時(shí)數(shù)據(jù)成為大數(shù)據(jù)處理技術(shù)的一大挑戰(zhàn)。分布式流數(shù)據(jù)處理系統(tǒng)是一類將實(shí)時(shí)流數(shù)據(jù)處理過程轉(zhuǎn)換成多個(gè)小作業(yè),在多個(gè)處理機(jī)器上并行執(zhí)行的系統(tǒng)。基于小批次作業(yè)的分布式流數(shù)據(jù)處理系統(tǒng)將實(shí)時(shí)流數(shù)據(jù)按照時(shí)間間隔切分成一系列的小批次數(shù)據(jù),然后對(duì)這些小批次數(shù)據(jù)進(jìn)行處理,利用這種方式,該類型系統(tǒng)可以提供低延遲、高吞吐量的實(shí)時(shí)數(shù)據(jù)處理服務(wù)。隨著云計(jì)算技術(shù)的發(fā)展和普及,將這類復(fù)雜的應(yīng)用部署到云環(huán)境中成為趨勢(shì)。
然而,生產(chǎn)環(huán)境中實(shí)時(shí)數(shù)據(jù)流的產(chǎn)生速度往往是波動(dòng)的,如果在部署系統(tǒng)到云環(huán)境中的時(shí)候固定分配系統(tǒng)資源則無法保證系統(tǒng)性能。一方面,數(shù)據(jù)流速度過大會(huì)導(dǎo)致系統(tǒng)負(fù)載過大,固定的資源配置可能使系統(tǒng)無法承受高負(fù)載,進(jìn)而導(dǎo)致處理不及時(shí)。另一方面,流數(shù)據(jù)輸入速度過小會(huì)導(dǎo)致系統(tǒng)負(fù)載較小,而系統(tǒng)固定的資源配置會(huì)導(dǎo)致資源浪費(fèi),造成云計(jì)算用戶的開銷增大。除此之外,由于流數(shù)據(jù)被切分成多個(gè)批次數(shù)據(jù)塊,針對(duì)每個(gè)批次數(shù)據(jù)的處理作業(yè)被劃分成多個(gè)小作業(yè)到各個(gè)執(zhí)行節(jié)點(diǎn)上運(yùn)行,由于每一個(gè)批次數(shù)據(jù)的分布并不是均衡的,當(dāng)被劃分成多個(gè)小作業(yè)處理時(shí),對(duì)應(yīng)的數(shù)據(jù)塊大小也呈現(xiàn)不均衡現(xiàn)象,進(jìn)而不同的節(jié)點(diǎn)處理的負(fù)載量不均衡。由于批次執(zhí)行時(shí)間取決于最慢的執(zhí)行節(jié)點(diǎn),因此這種不均衡勢(shì)必最終使整個(gè)批次的處理時(shí)間增加,延遲時(shí)間增加,系統(tǒng)性能無法保證。
針對(duì)數(shù)據(jù)流速度波動(dòng)問題,目前的處理辦法有兩種:資源最大化和彈性資源調(diào)度。資源最大化,即通過實(shí)際試運(yùn)行和統(tǒng)計(jì)分析等手段,事先估計(jì)系統(tǒng)將會(huì)面臨的最大峰值負(fù)載,根據(jù)峰值負(fù)載,最大化配置系統(tǒng)資源,保證系統(tǒng)的峰值性能。這種方式能很好保證系統(tǒng)性能,但如果數(shù)據(jù)流速度較低,則存在資源嚴(yán)重浪費(fèi)的情況,為云計(jì)算用戶帶來額外開銷。彈性資源調(diào)度,即通過對(duì)系統(tǒng)運(yùn)行時(shí)狀態(tài)進(jìn)行觀測(cè)和分析,根據(jù)負(fù)載變化彈性地調(diào)度系統(tǒng)資源,實(shí)現(xiàn)資源量和負(fù)載大小的匹配。針對(duì)負(fù)載不均衡的問題,目前的處理方法有兩種:負(fù)載重新劃分和彈性配置節(jié)點(diǎn)資源。負(fù)載重新劃分,即根據(jù)一定的劃分策略,將負(fù)載數(shù)據(jù)重新劃分到各個(gè)節(jié)點(diǎn)上,盡力使其均衡分布在各個(gè)節(jié)點(diǎn)上。這種方法一定程度上可以改善負(fù)載不均衡的問題,但是在流數(shù)據(jù)處理中每個(gè)批次作業(yè)執(zhí)行時(shí)間要求在秒級(jí)別,數(shù)據(jù)重新劃分會(huì)增加大量時(shí)間開銷導(dǎo)致執(zhí)行時(shí)間增加,系統(tǒng)性能受到影響。動(dòng)態(tài)配置節(jié)點(diǎn)資源,即根據(jù)各個(gè)節(jié)點(diǎn)處理的負(fù)載大小,彈性地配置其資源使得其處理能力能夠適應(yīng)其負(fù)載。這種方式在云計(jì)算環(huán)境中是十分簡(jiǎn)單高效的。本發(fā)明試圖探索一種在容器云環(huán)境中針對(duì)流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度方法,依據(jù)系統(tǒng)處理的負(fù)載量變化,彈性地調(diào)度系統(tǒng)的資源,使得其能夠適應(yīng)數(shù)據(jù)流速度波動(dòng)和節(jié)點(diǎn)負(fù)載分布不均衡的情況,保證其在云計(jì)算環(huán)境中的性能并降低資源開銷。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種容器云環(huán)境中流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度方法及系統(tǒng),根據(jù)系統(tǒng)處理的負(fù)載來指導(dǎo)系統(tǒng)的資源調(diào)度,通過彈性擴(kuò)展集群節(jié)點(diǎn)個(gè)數(shù)使系統(tǒng)能夠適應(yīng)流數(shù)據(jù)速度的波動(dòng),通過彈性配置各個(gè)節(jié)點(diǎn)的cpu資源應(yīng)對(duì)節(jié)點(diǎn)負(fù)載不均衡的情況,保證系統(tǒng)的性能。由此解決現(xiàn)有技術(shù)中針對(duì)流數(shù)據(jù)處理系統(tǒng)在容器云環(huán)境中存在的性能問題。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種容器云環(huán)境中流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度方法,包括:
s1、根據(jù)采集信息分析系統(tǒng)當(dāng)前作業(yè)執(zhí)行情況,對(duì)容器集群的資源狀態(tài)做出判斷,其中,所述采集信息包括上一個(gè)批次作業(yè)完成時(shí)間、上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)花費(fèi)的處理時(shí)間;
s2、若容器集群的資源緊張或者空閑,則由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量預(yù)測(cè)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,由上一個(gè)批次作業(yè)完成時(shí)間以及上一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量計(jì)算容器節(jié)點(diǎn)的平均處理速度,然后依據(jù)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量和平均處理速度計(jì)算新的集群規(guī)模大小,對(duì)容器集群規(guī)模進(jìn)行擴(kuò)展,m為第一預(yù)設(shè)值;
s3、若負(fù)載不均衡,則由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量預(yù)測(cè)在下一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量,并重新劃分cpu份額,對(duì)容器集群內(nèi)部容器節(jié)點(diǎn)間進(jìn)行cpu資源調(diào)度。
優(yōu)選地,步驟s1包括以下步驟:
s1.1、若pt≠λ*i,則說明系統(tǒng)處于不穩(wěn)定狀態(tài),需要進(jìn)行資源調(diào)整,其中,pt為上一個(gè)批次作業(yè)完成時(shí)間,λ為第二預(yù)設(shè)值,i為第三預(yù)設(shè)值,i表示流數(shù)據(jù)處理應(yīng)用程序指定的批次周期;
s1.2、根據(jù)上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)花費(fèi)的處理時(shí)間nt,將容器節(jié)點(diǎn)分為兩類:
其中,fast類型節(jié)點(diǎn)表示執(zhí)行速度快的節(jié)點(diǎn),slow類型節(jié)點(diǎn)表示執(zhí)行速度慢的節(jié)點(diǎn),統(tǒng)計(jì)fast節(jié)點(diǎn)個(gè)數(shù)記為nf,統(tǒng)計(jì)slow節(jié)點(diǎn)個(gè)數(shù)記為ns,μ為第四預(yù)設(shè)值;
s1.3、若pt>λ*i且ns≥σ*n,則說明容器集群資源不足;若pt>λ*i且ns<σ*n,則說明容器集群中容器節(jié)點(diǎn)負(fù)載不均;若pt<λ*i且nf≥σ*n,則說明容器集群資源過剩,其中σ為第四預(yù)設(shè)值,n為容器集群中當(dāng)前容器節(jié)點(diǎn)數(shù)量。
優(yōu)選地,步驟s2包括以下步驟:
s2.1、由w'=α*w+(1-α)*wδ對(duì)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量進(jìn)行預(yù)測(cè),其中w'表示預(yù)測(cè)的下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,w表示上一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,wδ表示最近兩個(gè)已經(jīng)完成的批次作業(yè)的負(fù)載數(shù)據(jù)量差值,且批次作業(yè)的負(fù)載數(shù)據(jù)量為該批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量之和,α為第五預(yù)設(shè)值,且α由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量進(jìn)行確定;
s2.2、由
s2.3、由
s2.4、根據(jù)所述新的集群節(jié)點(diǎn)數(shù)量,增加或者減少容器節(jié)點(diǎn),調(diào)整容器集群規(guī)模。
優(yōu)選地,步驟s3包括以下步驟:
s3.1、由w'=β*w+(1-β)*wδ對(duì)下一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量進(jìn)行預(yù)測(cè),其中w'表示預(yù)測(cè)的下一個(gè)批次作業(yè)中容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,w表示上一個(gè)批次作業(yè)中對(duì)應(yīng)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,wδ表示最近兩個(gè)已經(jīng)完成的批次作業(yè)中對(duì)應(yīng)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量差值,β為第六預(yù)設(shè)值,且β由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量進(jìn)行確定;
s3.2、由
s3.3、由下一個(gè)批次作業(yè)中各容器節(jié)點(diǎn)的cpu份額對(duì)容器節(jié)點(diǎn)的cpu份額進(jìn)行調(diào)節(jié)。
優(yōu)選地,步驟s2.4具體包括:
若n'>n,則增加n'-n個(gè)容器節(jié)點(diǎn),若n'<n,則根據(jù)上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,選擇n-n'個(gè)負(fù)載數(shù)據(jù)量最少的容器節(jié)點(diǎn)加入黑名單,并在i時(shí)間后關(guān)閉該n-n'個(gè)容器節(jié)點(diǎn)。
按照本發(fā)明的另一方面,提供了一種容器云環(huán)境中流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度系統(tǒng),包括:
執(zhí)行信息采集與分析模塊,用于根據(jù)采集信息分析系統(tǒng)當(dāng)前作業(yè)執(zhí)行情況,對(duì)容器集群的資源狀態(tài)做出判斷,其中,所述采集信息包括上一個(gè)批次作業(yè)完成時(shí)間、上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)花費(fèi)的處理時(shí)間;
集群擴(kuò)展模塊,用于在容器集群的資源緊張或者空閑時(shí),由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量預(yù)測(cè)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,由上一個(gè)批次作業(yè)完成時(shí)間以及上一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量計(jì)算容器節(jié)點(diǎn)的平均處理速度,然后依據(jù)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量和平均處理速度計(jì)算新的集群規(guī)模大小,對(duì)容器集群規(guī)模進(jìn)行擴(kuò)展,m為第一預(yù)設(shè)值;
集群內(nèi)資源調(diào)度模塊,用于在負(fù)載不均衡時(shí),由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量預(yù)測(cè)在下一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量,并重新劃分cpu份額,對(duì)容器集群內(nèi)部容器節(jié)點(diǎn)間進(jìn)行cpu資源調(diào)度。
優(yōu)選地,所述執(zhí)行信息采集與分析模塊包括:
初始判定模塊,用于在pt≠λ*i時(shí),說明系統(tǒng)處于不穩(wěn)定狀態(tài),需要進(jìn)行資源調(diào)整,其中,pt為上一個(gè)批次作業(yè)完成時(shí)間,λ為第二預(yù)設(shè)值,i為第三預(yù)設(shè)值,i表示流數(shù)據(jù)處理應(yīng)用程序指定的批次周期;
節(jié)點(diǎn)分類模塊,用于根據(jù)上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)花費(fèi)的處理時(shí)間nt,將容器節(jié)點(diǎn)分為兩類:
其中,fast類型節(jié)點(diǎn)表示執(zhí)行速度快的節(jié)點(diǎn),slow類型節(jié)點(diǎn)表示執(zhí)行速度慢的節(jié)點(diǎn),統(tǒng)計(jì)fast節(jié)點(diǎn)個(gè)數(shù)記為nf,統(tǒng)計(jì)slow節(jié)點(diǎn)個(gè)數(shù)記為ns,μ為第四預(yù)設(shè)值;
資源狀態(tài)判定模塊,用于在pt>λ*i且ns≥σ*n時(shí),說明容器集群資源不足;在pt>λ*i且ns<σ*n時(shí),說明容器集群中容器節(jié)點(diǎn)負(fù)載不均;在pt<λ*i且nf≥σ*n時(shí),說明容器集群資源過剩,其中σ為第四預(yù)設(shè)值,n為容器集群中當(dāng)前容器節(jié)點(diǎn)數(shù)量。
優(yōu)選地,所述集群擴(kuò)展模塊包括:
第一預(yù)測(cè)模塊,用于由w'=α*w+(1-α)*wδ對(duì)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量進(jìn)行預(yù)測(cè),其中w'表示預(yù)測(cè)的下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,w表示上一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,wδ表示最近兩個(gè)已經(jīng)完成的批次作業(yè)的負(fù)載數(shù)據(jù)量差值,且批次作業(yè)的負(fù)載數(shù)據(jù)量為該批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量之和,α為第五預(yù)設(shè)值,且α由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量進(jìn)行確定;
第一計(jì)算模塊,用于由
第二計(jì)算模塊,用于由
調(diào)整模塊,用于根據(jù)所述新的集群節(jié)點(diǎn)數(shù)量,增加或者減少容器節(jié)點(diǎn),調(diào)整容器集群規(guī)模。
優(yōu)選地,所述集群內(nèi)資源調(diào)度模塊包括:
第二預(yù)測(cè)模塊,用于由w'=β*w+(1-β)*wδ對(duì)下一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量進(jìn)行預(yù)測(cè),其中w'表示預(yù)測(cè)的下一個(gè)批次作業(yè)中容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,w表示上一個(gè)批次作業(yè)中對(duì)應(yīng)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,wδ表示最近兩個(gè)已經(jīng)完成的批次作業(yè)中對(duì)應(yīng)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量差值,β為第六預(yù)設(shè)值,且β由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量進(jìn)行確定;
第三計(jì)算模塊,用于由
資源調(diào)度子模塊,用于由下一個(gè)批次作業(yè)中各容器節(jié)點(diǎn)的cpu份額對(duì)容器節(jié)點(diǎn)的cpu份額進(jìn)行調(diào)節(jié)。
優(yōu)選地,所述調(diào)整模塊,具體用于在n'>n時(shí),增加n'-n個(gè)容器節(jié)點(diǎn),在n'<n時(shí),根據(jù)上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,選擇n-n'個(gè)負(fù)載數(shù)據(jù)量最少的容器節(jié)點(diǎn)加入黑名單,并在i時(shí)間后關(guān)閉該n-n'個(gè)容器節(jié)點(diǎn)。
總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
(1)本發(fā)明通過彈性擴(kuò)展集群規(guī)模和彈性配置節(jié)點(diǎn)資源,在保證用戶透明情況下,能夠保證在數(shù)據(jù)流速度波動(dòng)和節(jié)點(diǎn)負(fù)載不均衡情況下流數(shù)據(jù)系統(tǒng)的性能。
(2)本發(fā)明僅需要對(duì)流數(shù)據(jù)系統(tǒng)的調(diào)度器進(jìn)行一定修改,不需要修改用戶的應(yīng)用,整體成本低。
(3)本發(fā)明利用了容器啟動(dòng)速度快,資源彈性配置簡(jiǎn)便的特點(diǎn),能夠?qū)崿F(xiàn)高效快速?gòu)椥再Y源調(diào)度。
附圖說明
圖1為本發(fā)明實(shí)施例公開的一種容器云環(huán)境中流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度方法的流程示意圖;
圖2為本發(fā)明實(shí)施例公開的一種集群擴(kuò)展方法的流程示意圖;
圖3為本發(fā)明實(shí)施例公開的一種集群內(nèi)資源調(diào)度方法的流程示意圖;
圖4為本發(fā)明實(shí)施例公開的一種容器云環(huán)境中流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度系統(tǒng)的功能模塊示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
如圖1所示為本發(fā)明實(shí)施例公開的一種容器云環(huán)境中流數(shù)據(jù)處理系統(tǒng)的彈性資源調(diào)度方法的流程示意圖,在圖1所示的方法中包括以下步驟:
s1、根據(jù)采集信息分析系統(tǒng)當(dāng)前作業(yè)執(zhí)行情況,對(duì)容器集群的資源狀態(tài)做出判斷,其中,該采集信息包括上一個(gè)批次作業(yè)完成時(shí)間、上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)花費(fèi)的處理時(shí)間;
其中,該處理時(shí)間的計(jì)算方法是:處理時(shí)間=最晚完成的任務(wù)完成時(shí)間-最早提交的任務(wù)的提交時(shí)間。
s2、若容器集群的資源緊張或者空閑,則由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量預(yù)測(cè)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,由上一個(gè)批次作業(yè)完成時(shí)間以及上一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量計(jì)算容器節(jié)點(diǎn)的平均處理速度,然后依據(jù)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量和平均處理速度計(jì)算新的集群規(guī)模大小,對(duì)容器集群規(guī)模進(jìn)行擴(kuò)展,m為第一預(yù)設(shè)值;在本發(fā)明中m優(yōu)選取值為5。
s3、若負(fù)載不均衡,則由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量預(yù)測(cè)在下一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量,并重新劃分cpu份額,對(duì)容器集群內(nèi)部容器節(jié)點(diǎn)間進(jìn)行cpu資源調(diào)度。
作為一種可選的實(shí)施方式,步驟s1包括以下步驟:
s1.1、若pt≠λ*i,則說明系統(tǒng)處于不穩(wěn)定狀態(tài),需要進(jìn)行資源調(diào)整,其中,pt為上一個(gè)批次作業(yè)完成時(shí)間,λ為第二預(yù)設(shè)值,i為第三預(yù)設(shè)值,i表示流數(shù)據(jù)處理應(yīng)用程序指定的批次周期;在本發(fā)明中λ優(yōu)選取值為0.9。
s1.2、根據(jù)上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)花費(fèi)的處理時(shí)間nt,將容器節(jié)點(diǎn)分為兩類:
其中,fast類型節(jié)點(diǎn)表示執(zhí)行速度快的節(jié)點(diǎn),slow類型節(jié)點(diǎn)表示執(zhí)行速度慢的節(jié)點(diǎn),統(tǒng)計(jì)fast節(jié)點(diǎn)個(gè)數(shù)記為nf,統(tǒng)計(jì)slow節(jié)點(diǎn)個(gè)數(shù)記為ns,μ為第四預(yù)設(shè)值,在本發(fā)明中μ優(yōu)選取值為0.5;
s1.3、若pt>λ*i且ns≥σ*n,則說明容器集群資源不足;若pt>λ*i且ns<σ*n,則說明容器集群中容器節(jié)點(diǎn)負(fù)載不均;若pt<λ*i且nf≥σ*n,則說明容器集群資源過剩,其中σ為第四預(yù)設(shè)值,n為容器集群中當(dāng)前容器節(jié)點(diǎn)數(shù)量。在本發(fā)明中σ優(yōu)選取值為0.4。
其中,通過步驟s1中的資源情況分析步驟通過分析歷史執(zhí)行信息來確定當(dāng)前集群的資源狀態(tài),可以指導(dǎo)最終做出資源決策。
如圖2所示為本發(fā)明實(shí)施例公開的一種集群擴(kuò)展方法的流程示意圖,在圖2所示的方法中,包括以下步驟:
s2.1、由w'=α*w+(1-α)*wδ對(duì)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量進(jìn)行預(yù)測(cè),其中w'表示預(yù)測(cè)的下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,w表示上一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,wδ表示最近兩個(gè)已經(jīng)完成的批次作業(yè)的負(fù)載數(shù)據(jù)量差值,且批次作業(yè)的負(fù)載數(shù)據(jù)量為該批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量之和,α為第五預(yù)設(shè)值,且α由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量進(jìn)行確定;
以下通過舉例的方式說明本發(fā)明中α取值的確定:假設(shè)m取值為5,w[1]、w[2]、w[3]、w[4]、w[5]分別表示采集到的五個(gè)歷史批次作業(yè)的負(fù)載數(shù)據(jù)量,根據(jù)預(yù)測(cè)的算法可以得到預(yù)測(cè)值:
w'[3]=α*w[2]+(1-α)*(w[2]-w[1])
w'[4]=α*w[3]+(1-α)*(w[3]-w[2])
w'[5]=α*w[4]+(1-α)*(w[4]-w[3])
w'[6]=α*w[5]+(1-α)*(w[5]-w[4])
其中,可以通過取不同的α值分別計(jì)算出w'[3]、w'[4]、w'[5]以及w'[6],對(duì)不同α值對(duì)應(yīng)的每一組w'[3]、w'[4]、w'[5],由于已經(jīng)采集到了準(zhǔn)確的值w[3]、w[4]、w[5],因此可以通過w[3]、w[4]、w[5]計(jì)算每一組的平均絕對(duì)誤差,將平均絕對(duì)誤差最小時(shí)對(duì)應(yīng)的α值作為目標(biāo)α值,最后根據(jù)計(jì)算得到的目標(biāo)α值預(yù)測(cè)下一個(gè)批次作業(yè)的負(fù)載數(shù)據(jù)量,即本例中的w'[6]的值。
s2.2、由
s2.3、由
s2.4、根據(jù)所述新的集群節(jié)點(diǎn)數(shù)量,增加或者減少容器節(jié)點(diǎn),調(diào)整容器集群規(guī)模。
具體地,可以通過以下方式調(diào)整容器集群規(guī)模:若n'>n,則增加n'-n個(gè)容器節(jié)點(diǎn),若n'<n,則根據(jù)上一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,選擇n-n'個(gè)負(fù)載數(shù)據(jù)量最少的容器節(jié)點(diǎn)加入黑名單,并在i時(shí)間后關(guān)閉該n-n'個(gè)容器節(jié)點(diǎn)。
如圖3所示為本發(fā)明實(shí)施例公開的一種集群內(nèi)資源調(diào)度方法的流程示意圖,在圖3所示的方法中,包括以下步驟:
s3.1、由w'=β*w+(1-β)*wδ對(duì)下一個(gè)批次作業(yè)中每個(gè)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量進(jìn)行預(yù)測(cè),其中w'表示預(yù)測(cè)的下一個(gè)批次作業(yè)中容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,w表示上一個(gè)批次作業(yè)中對(duì)應(yīng)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量,wδ表示最近兩個(gè)已經(jīng)完成的批次作業(yè)中對(duì)應(yīng)容器節(jié)點(diǎn)的負(fù)載數(shù)據(jù)量差值,β為第六預(yù)設(shè)值,且β由m個(gè)歷史批次作業(yè)中每個(gè)容器節(jié)點(diǎn)處理的負(fù)載數(shù)據(jù)量進(jìn)行確定;
其中,β值的確定可以參考上個(gè)實(shí)施例中對(duì)確定α值的舉例,本發(fā)明實(shí)施例將不在復(fù)述。
s3.2、由
s3.3、由下一個(gè)批次作業(yè)中各容器節(jié)點(diǎn)的cpu份額對(duì)容器節(jié)點(diǎn)的cpu份額進(jìn)行調(diào)節(jié)。
如圖4所示,本發(fā)明的主要功能模塊包括執(zhí)行信息采集與分析模塊、集群擴(kuò)展模塊和集群內(nèi)資源調(diào)度模塊。集群擴(kuò)展模塊負(fù)責(zé)在系統(tǒng)發(fā)生資源緊張或空閑時(shí)對(duì)集群規(guī)模進(jìn)行調(diào)整。集群內(nèi)資源調(diào)度模塊則負(fù)責(zé)在系統(tǒng)負(fù)載不均衡時(shí)調(diào)度集群內(nèi)各容器節(jié)點(diǎn)的cpu資源。本發(fā)明中執(zhí)行驅(qū)動(dòng)器和任務(wù)執(zhí)行器都運(yùn)行在容器中,通過修改流數(shù)據(jù)處理系統(tǒng)的資源管理策略實(shí)現(xiàn)彈性資源配置,保證系統(tǒng)在容器云環(huán)境中的性能。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。