本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種資源管理方法及系統(tǒng)。
背景技術(shù):
隨著時(shí)代的進(jìn)步,大數(shù)據(jù)逐漸成為企業(yè)及行業(yè)的最重要資產(chǎn)之一,企業(yè)中的發(fā)展決策與市場(chǎng)定位行為將基于該些大數(shù)據(jù)分析做出,而不是像過(guò)去更多憑借經(jīng)驗(yàn)和直覺(jué)。
與此同時(shí),用于分析該些大數(shù)據(jù)以得到用于企業(yè)發(fā)展決策與市場(chǎng)定位結(jié)果的大數(shù)據(jù)計(jì)算框架應(yīng)運(yùn)而生,由于不同的大數(shù)據(jù)計(jì)算框架所需的資源類型不同,因此,支持不同的大數(shù)據(jù)計(jì)算框架運(yùn)行的資源管理框架也隨之產(chǎn)生。隨著云計(jì)算、大數(shù)據(jù)以及多媒體技術(shù)的不斷發(fā)展,要處理的業(yè)務(wù)類型也日益增多,如此就使得有很多的應(yīng)用場(chǎng)景,而眾多的應(yīng)用場(chǎng)景就需要多種不同類型的資源管理框架,同時(shí),在技術(shù)的不斷發(fā)展過(guò)程中,需要調(diào)研業(yè)界現(xiàn)有的技術(shù),比如不同的資源管理框架,調(diào)研的過(guò)程中往往要部署多種資源框架并進(jìn)行性能測(cè)試,所以現(xiàn)存的資源管理系統(tǒng)內(nèi)部部署有多種不同類型的資源管理框架。
圖1所示為大數(shù)據(jù)分析的系統(tǒng)架構(gòu)圖,如圖1所示,該系統(tǒng)包括:資源管理框架和大數(shù)據(jù)計(jì)算框架,目前,當(dāng)用戶需要使用上述系統(tǒng)分析大數(shù)據(jù)時(shí),用戶首先將大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息以資源管理框架所規(guī)定的方式提交至資源管理框架,其中,大數(shù)據(jù)作業(yè)任務(wù)中會(huì)包括執(zhí)行大數(shù)據(jù)作業(yè)任務(wù)所需的大數(shù)據(jù)計(jì)算框架類型,以及執(zhí)行大數(shù)據(jù)作業(yè)任務(wù)的資源需求量,然后資源管理框架根據(jù)執(zhí)行大數(shù)據(jù)作業(yè)任務(wù)的資源需求量為大數(shù)據(jù)作業(yè)任務(wù)分配資源,進(jìn)而大數(shù)據(jù)計(jì)算框架使用資源管理框架分配的資源運(yùn)行大數(shù)據(jù)作業(yè)任務(wù)。
由于資源管理框架的種類繁多,且每種資源管理框架所規(guī)定的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的提交方式不同,當(dāng)將相同的大數(shù)據(jù)作業(yè)任務(wù)提交至不同類型的資源管理框架以運(yùn)行大數(shù)據(jù)作業(yè)任務(wù)時(shí),如果提交的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息與資源管理框架不對(duì)應(yīng),就會(huì)造成資源管理框架無(wú)法有效為大數(shù)據(jù)作業(yè)任務(wù)分配執(zhí)行大數(shù)據(jù)作業(yè)任務(wù)的資源需求量,使得大數(shù)據(jù)計(jì)算框架無(wú)法正常的運(yùn)行大數(shù)據(jù)作業(yè)任務(wù)而導(dǎo)致運(yùn)行結(jié)果出錯(cuò),從而影響企業(yè)發(fā)展決策與市場(chǎng)定位的準(zhǔn)確性。現(xiàn)有的部署有多種類型的資源管理框架時(shí),大數(shù)據(jù)計(jì)算框架需要和資源管理框架進(jìn)行手工適配,大數(shù)據(jù)計(jì)算框架和不同的資源資源管理框架之間需要使用不同的管理、調(diào)度接口,使得資源管理成本高、資源管理及調(diào)度復(fù)雜度高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種資源管理方法及系統(tǒng),以實(shí)現(xiàn)降低資源管理成本,以及降低資源管理和調(diào)度的復(fù)雜度。具體技術(shù)方案如下:
本發(fā)明實(shí)施例提供了一種資源管理方法,包括:
接收第一作業(yè)任務(wù)提交消息,所述第一作業(yè)任務(wù)提交消息中包括:待處理的作業(yè)、處理所述作業(yè)的第一資源需求信息和處理所述作業(yè)的第一資源管理框架;
將所述第一資源需求信息轉(zhuǎn)換為所述第一資源管理框架對(duì)應(yīng)的第二資源需求信息;
將所述第二資源需求信息和所述作業(yè)發(fā)送至所述第一資源管理框架,以使所述第一資源管理框架根據(jù)所述第二資源需求信息分配運(yùn)行所述作業(yè)所需的第一資源,并根據(jù)分配的所述第一資源運(yùn)行所述作業(yè)。
優(yōu)選的,所述第一資源需求信息包括第一資源需求類型標(biāo)識(shí)和第一資源需求量;
所述將所述第一資源需求信息轉(zhuǎn)換為所述第一資源管理框架對(duì)應(yīng)的第二資源需求信息包括:
將所述第一資源需求類型標(biāo)識(shí)轉(zhuǎn)換為所述第一資源管理框架對(duì)應(yīng)的第二資源需求類型標(biāo)識(shí),和/或,將所述第一資源需求量轉(zhuǎn)換為所述第一資源管理框架對(duì)應(yīng)的第二資源需求量。
優(yōu)選的,將所述第二資源需求信息和所述作業(yè)發(fā)送至所述第一資源管理框架之后,還包括:
接收第二作業(yè)任務(wù)提交消息,所述第二作業(yè)任務(wù)提交消息中包括:所述作業(yè)、所述第一資源需求信息和處理所述作業(yè)的第二資源管理框架;
將所述第一資源需求信息轉(zhuǎn)換為所述第二資源管理框架能夠處理的第三資源需求信息;
將所述第三資源需求信息和所述作業(yè)發(fā)送至所述第二資源管理框架,以使所述第二資源管理框架根據(jù)所述第三資源需求信息分配運(yùn)行所述作業(yè)所需的第二資源,并根據(jù)分配的所述第二資源運(yùn)行所述作業(yè)。
優(yōu)選的,接收所述用戶發(fā)送的第二作業(yè)任務(wù)提交請(qǐng)求消息之前,還包括:
接收作業(yè)任務(wù)停止請(qǐng)求消息;
將所述作業(yè)任務(wù)停止請(qǐng)求消息發(fā)送至所述第一資源管理框架,以使所述第一資源管理框架停止運(yùn)行所述作業(yè)。
優(yōu)選的,接收第一作業(yè)任務(wù)提交消息,包括:
接收用戶終端發(fā)送的第一作業(yè)任務(wù)提交消息;
所述將所述第二資源需求信息和所述作業(yè)發(fā)送至所述第一資源管理框架之后,還包括:
獲取所述作業(yè)的運(yùn)行狀態(tài)并反饋給所述用戶終端。
優(yōu)選的,所述獲取所述作業(yè)的運(yùn)行狀態(tài)并輸出給用戶,包括:
獲取所述作業(yè)的運(yùn)行狀態(tài),將所述作業(yè)的運(yùn)行狀態(tài)轉(zhuǎn)換為統(tǒng)一規(guī)范化的運(yùn)行狀態(tài),并反饋給用戶終端。
另外,本發(fā)明還公開(kāi)了一種資源管理系統(tǒng),包括:
第一接收模塊,用于接收第一作業(yè)任務(wù)提交消息,所述第一作業(yè)任務(wù)提交消息中包括:待處理的作業(yè)、處理所述作業(yè)的第一資源需求信息和處理所述作業(yè)的第一資源管理框架;
第一轉(zhuǎn)換模塊,用于將所述第一資源需求信息轉(zhuǎn)換為所述第一資源管理框架對(duì)應(yīng)的第二資源需求信息;
第一分配模塊,用于將所述第二資源需求信息和所述作業(yè)發(fā)送至所述第一資源管理框架,以使所述第一資源管理框架根據(jù)所述第二資源需求信息分配運(yùn)行所述作業(yè)所需的第一資源,并根據(jù)分配的所述第一資源運(yùn)行所述作業(yè)。
優(yōu)選的,所述資源管理系統(tǒng)具體用于所述第一資源需求信息包括第一資源需求類型標(biāo)識(shí)和第一資源需求量;
所述第一轉(zhuǎn)換模塊,包括:
用于將所述第一資源需求類型標(biāo)識(shí)轉(zhuǎn)換為所述第一資源管理框架對(duì)應(yīng)的第二資源需求類型標(biāo)識(shí),和/或,將所述第一資源需求量轉(zhuǎn)換為所述第一資源管理框架對(duì)應(yīng)的第二資源需求量。
優(yōu)選的,所述資源管理系統(tǒng),還包括:
第二接收模塊,用于接收第二作業(yè)任務(wù)提交消息,所述第二作業(yè)任務(wù)提交消息中包括:所述作業(yè)、所述第一資源需求信息和處理所述作業(yè)的第二資源管理框架;
第二轉(zhuǎn)換模塊,用于將所述第一資源需求信息轉(zhuǎn)換為所述第二資源管理框架能夠處理的第三資源需求信息;
第二分配模塊,用于將所述第三資源需求信息和所述作業(yè)發(fā)送至所述第二資源管理框架,以使所述第二資源管理框架根據(jù)所述第三資源需求信息分配運(yùn)行所述作業(yè)所需的第二資源,并根據(jù)分配的所述第二資源運(yùn)行所述作業(yè)。
優(yōu)選的,所述資源管理系統(tǒng)還包括:
接收停止消息模塊,用于接收作業(yè)任務(wù)停止請(qǐng)求消息;
發(fā)送模塊,用于將所述作業(yè)任務(wù)停止請(qǐng)求消息發(fā)送至所述第一資源管理框架,以使所述第一資源管理框架停止運(yùn)行所述作業(yè)。
優(yōu)選的,所述第一接收模塊,包括:用于接收用戶終端發(fā)送的第一作業(yè)任務(wù)提交消息;
所述資源管理系統(tǒng),還包括:
獲取狀態(tài)模塊,用于獲取所述作業(yè)的運(yùn)行狀態(tài)并反饋給所述用戶終端。
優(yōu)選的,所述獲取狀態(tài)模塊,用于獲取所述作業(yè)的運(yùn)行狀態(tài),將所述作業(yè)的運(yùn)行狀態(tài)轉(zhuǎn)換為統(tǒng)一規(guī)范化的運(yùn)行狀態(tài),并反饋給用戶終端。
本發(fā)明實(shí)施例提供的資源管理方法及系統(tǒng),可以在部署有多種類型的資源管理框架的環(huán)境下,統(tǒng)一規(guī)范多種類型的資源管理框架的資源管理及調(diào)度策略,為各種資源管理框架提供統(tǒng)一的管理、調(diào)度規(guī)范,使得對(duì)于不同的資源管理框架,為任務(wù)提供統(tǒng)一的資源抽象與調(diào)度策略,在應(yīng)用過(guò)程中,不需要人工適配大數(shù)據(jù)計(jì)算管理框架和大數(shù)據(jù)資源管理框架,降低資源管理成本,以及降低資源管理和調(diào)度的復(fù)雜度。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有的大數(shù)據(jù)分析的系統(tǒng)架構(gòu)圖;
圖2為本發(fā)明實(shí)施例大數(shù)據(jù)分析的系統(tǒng)架構(gòu)圖;
圖3為本發(fā)明實(shí)施例資源管理方法的流程圖;
圖4為本發(fā)明實(shí)施例更換資源管理框架的流程圖;
圖5為本發(fā)明實(shí)施例資源管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例資源管理的方法及系統(tǒng),在部署有多種類型的資源管理框架的環(huán)境下,統(tǒng)一規(guī)范多種類型的資源管理框架的資源管理及調(diào)度策略,為各種資源管理框架提供統(tǒng)一的管理、調(diào)度規(guī)范,使得對(duì)于不同的資源管理框架,為任務(wù)提供統(tǒng)一的資源抽象與調(diào)度策略,在應(yīng)用過(guò)程中,不需要人工適配大數(shù)據(jù)計(jì)算管理框架和大數(shù)據(jù)資源管理框架,降低資源管理成本,以及降低資源管理和調(diào)度的復(fù)雜度。
參照?qǐng)D2,圖2所示為本發(fā)明實(shí)施例大數(shù)據(jù)分析的系統(tǒng)架構(gòu)圖,本發(fā)明實(shí)施例在現(xiàn)有的資源管理系統(tǒng)的結(jié)構(gòu)上,即在圖1的基礎(chǔ)上增加了大數(shù)據(jù)資源管理平臺(tái)。大數(shù)據(jù)資源管理平臺(tái)對(duì)不同的資源管理框架進(jìn)行統(tǒng)一的平臺(tái)化管理,進(jìn)行統(tǒng)一的管理、調(diào)度以及對(duì)任務(wù)的狀態(tài)進(jìn)行監(jiān)控。在實(shí)際的應(yīng)用過(guò)程中,該大數(shù)據(jù)管理平臺(tái)可以完成資源申請(qǐng)、程序啟動(dòng)、程序控制、信息查詢、自適應(yīng)機(jī)制、動(dòng)態(tài)擴(kuò)展與伸縮、以及容錯(cuò)機(jī)制等。在本發(fā)明實(shí)施例中對(duì)資源申請(qǐng)、對(duì)資源調(diào)度及狀態(tài)監(jiān)控進(jìn)行詳細(xì)說(shuō)明。
用于分析大數(shù)據(jù)以得到用于企業(yè)發(fā)展決策與市場(chǎng)定位結(jié)果的大數(shù)據(jù)計(jì)算框架種類繁多,例如:支持離線處理的大數(shù)據(jù)計(jì)算框架MapReduce,支持在線處理的大數(shù)據(jù)計(jì)算框架Storm,支持迭代式計(jì)算的大數(shù)據(jù)計(jì)算框架Spark等等;支持不同的大數(shù)據(jù)計(jì)算框架運(yùn)行的資源管理框架也種類繁多,例如:Yarn和Mesos。
為了更加清楚的解釋本發(fā)明,以下以Yarn和Mesos為例進(jìn)行說(shuō)明。
Yarn和Mesos所需要用戶輸入的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的格式不同,Yarn所規(guī)定的用戶輸入的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的提交格式為:numExecutors=2,executorMemory=1G,executorCores=1,driverMemory=4G,driverCores=2。Mesos所規(guī)定的用戶輸入的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的提交格式為:executor-memory=20G--total-executor-cores=100。而作為用戶而言,為了使用Yarn和Mesos,必須將Yarn和Mesos的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的格式牢記,從而需要使用哪種資源管理框架時(shí),便按照該種大數(shù)據(jù)資源管理框架所要求的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的格式輸入,而在實(shí)際中由于資源管理框架的種類繁多,當(dāng)將大數(shù)據(jù)作業(yè)任務(wù)提交至不同類型的資源管理框架以運(yùn)行大數(shù)據(jù)作業(yè)任務(wù)時(shí),很可能存在提交的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息與資源管理框架不對(duì)應(yīng),例如:將上述Yarn中的executorMemory。輸入為20G,而Mesos中沒(méi)有executorMemory的參數(shù),從而就會(huì)造成資源管理框架無(wú)法有效為大數(shù)據(jù)作業(yè)任務(wù)分配執(zhí)行大數(shù)據(jù)作業(yè)任務(wù)的資源需求量,使得大數(shù)據(jù)計(jì)算框架無(wú)法正常的運(yùn)行大數(shù)據(jù)作業(yè)任務(wù)而導(dǎo)致運(yùn)行結(jié)果出錯(cuò),從而影響企業(yè)發(fā)展決策與市場(chǎng)定位的準(zhǔn)確性。
本發(fā)明實(shí)施例通過(guò)提供統(tǒng)一的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的提交格式,也即,無(wú)論用戶需要使用哪種資源管理框架進(jìn)行大數(shù)據(jù)分析,只需按照本發(fā)明實(shí)施例中規(guī)定的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的提交格式提交大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息,然后,本發(fā)明實(shí)施例中將用戶提交的該大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息適配解析為用戶所指定的資源管理框架對(duì)應(yīng)的大數(shù)據(jù)作業(yè)任務(wù)請(qǐng)求消息的提交格式,從而使得用戶所指定的資源管理框架有效為大數(shù)據(jù)作業(yè)任務(wù)分配執(zhí)行大數(shù)據(jù)作業(yè)任務(wù)的資源需求量,為各種資源管理框架提供統(tǒng)一的管理、調(diào)度規(guī)范,使得對(duì)于不同的資源管理框架,為任務(wù)提供統(tǒng)一的資源抽象與調(diào)度策略,在應(yīng)用過(guò)程中,不需要人工適配大數(shù)據(jù)計(jì)算管理框架和大數(shù)據(jù)資源管理框架,降低資源管理成本,以及降低資源管理和調(diào)度的復(fù)雜度,同時(shí),使得大數(shù)據(jù)計(jì)算框架可以正常的運(yùn)行大數(shù)據(jù)作業(yè)任務(wù),提高了運(yùn)行結(jié)果的準(zhǔn)確性。
本發(fā)明實(shí)施例的方案可以應(yīng)用于現(xiàn)有的資源管理框架或大數(shù)據(jù)計(jì)算框架所在的服務(wù)器,也可以重新設(shè)置服務(wù)器,本發(fā)明不對(duì)其加以限制。
值得注意的是,為了使本發(fā)明實(shí)施例的方案描述的更加清楚,下述各個(gè)步驟的執(zhí)行主體為服務(wù)器,而該服務(wù)器可以是上述描述中的任一種。
下面通過(guò)具體的實(shí)施例說(shuō)明本發(fā)明的方案。
圖3所示為本發(fā)明實(shí)施例提供的資源管理方法的流程圖,如圖3所示,本實(shí)施例的方法可以包括:
S101:接收第一作業(yè)任務(wù)提交消息,第一作業(yè)任務(wù)提交消息中包括:待處理的作業(yè)、處理作業(yè)所需的第一資源需求信息和處理作業(yè)所需的第一資源管理框架。
當(dāng)用戶需要使用第一資源管理框架運(yùn)行大數(shù)據(jù)作業(yè)任務(wù)時(shí),只需按照本發(fā)明實(shí)施例中預(yù)設(shè)的提交格式提交第一作業(yè)任務(wù)提交消息即可,本發(fā)明實(shí)施例中預(yù)設(shè)的提交格式是針對(duì)不同的資源管理框架抽象統(tǒng)一化后的統(tǒng)一提交格式,而無(wú)需用戶按照第一資源管理框架規(guī)定的提交格式提交,有效降低了用戶的工作量和出錯(cuò)率。
可選的,上述的第一資源需求信息包括資源需求類型和資源需求量,其中,資源需求類型例如可以為以下資源需求類型中的至少一種:CPU、內(nèi)存、帶寬或Container,基于上述例子,資源需求量例如可以為:10個(gè)CPU核,20G內(nèi)存,萬(wàn)兆帶寬;5個(gè)Container。
在一種可實(shí)現(xiàn)方式中,由于各個(gè)資源管理框架一般對(duì)資源需求信息的提交格式要求不同,因此,本發(fā)明實(shí)施例對(duì)不同的資源管理框架提供了統(tǒng)一的資源需求信息提交格式,例如:CPU需求的提交格式為:totalVcore=100,內(nèi)存的提交格式為:totalMemory=1000G。帶寬的提交格式為:10000GB/s容器Container的提交格式為:containerNum=50。
進(jìn)一步的,本發(fā)明實(shí)施例中需要將用戶輸入的第一作業(yè)任務(wù)提交消息適配解析為用戶所指定的第一資源管理框架對(duì)應(yīng)的作業(yè)任務(wù)請(qǐng)求消息的提交格式,在一種可實(shí)現(xiàn)的方式中:本發(fā)明實(shí)施例中僅需將用戶輸入的第一作業(yè)任務(wù)提交消息中的處理作業(yè)所需的第一資源需求信息適配解析為用戶所指定的第一資源管理框架對(duì)應(yīng)的第二資源請(qǐng)求消息。因此用戶提交的第一作業(yè)任務(wù)提交消息中還需要包括用戶所指定處理作業(yè)所需的第一資源管理框架,從而當(dāng)接收到用戶提交的第一作業(yè)任務(wù)提交消息后,便可以得知用戶想要使用第一資源管理框架執(zhí)行作業(yè),進(jìn)而,將第一作業(yè)任務(wù)提交消息中的處理作業(yè)所需的第一資源需求信息轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求信息,以使第一資源框架可以識(shí)別該第一資源需求信息以獲取用戶對(duì)資源的需求量。
例如:上述的第一作業(yè)任務(wù)提交消息的提交格式可以為:numExecutors=2,executorMemory=1G,executorCores=1,driverMemory=4G,driverCores=2。
S102:將第一資源需求信息轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求信息。
繼續(xù)按照上述的例子,當(dāng)?shù)谝毁Y源需求信息包括第一資源需求類型標(biāo)識(shí)和第一資源需求量時(shí),此時(shí)的轉(zhuǎn)換過(guò)程為:將第一資源需求類型標(biāo)識(shí)轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求類型標(biāo)識(shí),和/或,將第一資源需求量轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求量。
如果上述定義的第一資源需求量的提交格式和第一資源管理框架對(duì)應(yīng)的資源需求量的提交格式相同,則此時(shí)只需將第一資源需求類型標(biāo)識(shí)轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求類型標(biāo)識(shí);
例如:上述的第一資源管理框架為Yarn,當(dāng)接收第一資源需求消息中的第一資源需求量的提交格式為:totalMemory=10G,totalVcore=100,containerNum=50。而Yarn規(guī)定的第二資源需求量的提交格式為:
numExecutors=2,executorMemory=1G,executorCores=1,driverMemory=4G,driverCores=2。此時(shí)只需將totalMemory,totalVcore,containerNum根據(jù)轉(zhuǎn)換公式轉(zhuǎn)換為numExecutors,executorMemory,executorCores,driverMemory,driverCores。
如果上述定義的第一資源需求類型標(biāo)識(shí)和第一資源管理框架對(duì)應(yīng)的資源需求類型標(biāo)識(shí)的提交格式相同,則此時(shí)只需將第一資源需求量轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求量;
如果上述定義的第一資源需求類型標(biāo)識(shí)的提交格式和第一資源需求量的提交格式均與第一資源管理框架對(duì)應(yīng)的提交格式不同,則此時(shí)不僅需要將第一資源需求類型標(biāo)識(shí)轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求類型標(biāo)識(shí),還需要將第一資源需求量轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求量。
S103:將第二資源需求信息和作業(yè)發(fā)送至第一資源管理框架,以使第一資源管理框架根據(jù)第二資源需求信息分配運(yùn)行作業(yè)所需的第一資源,并根據(jù)分配的第一資源運(yùn)行作業(yè)。
當(dāng)執(zhí)行了S102后,會(huì)將待處理的作業(yè)和解析后的第二資源需求信息發(fā)送給第一資源管理框架。
與現(xiàn)有技術(shù)中相同,上述第一作業(yè)任務(wù)提交消息中還可以包括用戶指定的處理上述待處理作業(yè)所需的計(jì)算框架,此時(shí),當(dāng)?shù)谝毁Y源管理框架接收到待處理的作業(yè)和第二資源需求信息時(shí),還會(huì)接收到用戶指定的計(jì)算框架,然后,第一資源管理框架按照第二資源需求信息分配執(zhí)行上述待處理的作業(yè)所需的第一資源,按照用戶指定的計(jì)算框架執(zhí)行作業(yè)。
本發(fā)明實(shí)施例提供的資源管理的方法,通過(guò)對(duì)任務(wù)提交給不同的資源管理框架的格式進(jìn)行統(tǒng)一的規(guī)范化,為各種不同類型的資源管理框架提供統(tǒng)一的管理、調(diào)度接口。作業(yè)任務(wù)計(jì)算運(yùn)行的過(guò)程中,不再需要將多種不同的大數(shù)據(jù)計(jì)算管理框架和多種不同的資源管理框架進(jìn)行逐一適配,使得降低資源管理成本,以及降低資源管理和調(diào)度的復(fù)雜度。
在本發(fā)明的一種可實(shí)現(xiàn)方式中,用戶提交給大數(shù)據(jù)資源管理平臺(tái)的任務(wù)的是統(tǒng)一規(guī)范化后的格式的任務(wù)消息,該任務(wù)消息不僅包含了運(yùn)行任務(wù)所需的資源信息,還包含了對(duì)任務(wù)的調(diào)度參數(shù)。當(dāng)多個(gè)任務(wù)同時(shí)向資源管理框架請(qǐng)求資源時(shí),可以根據(jù)對(duì)各個(gè)任務(wù)定義的統(tǒng)一規(guī)范化格式的資源信息和調(diào)度參數(shù),對(duì)各個(gè)任務(wù)進(jìn)行統(tǒng)一的調(diào)度、管理。
在本發(fā)明的一種優(yōu)選的實(shí)施方式中,接收用戶終端發(fā)送的第一作業(yè)任務(wù)提交消息,除上述的待處理的作業(yè)、處理作業(yè)的第一資源需求信息和處理作業(yè)的第一資源管理框架之外,接收到的用戶終端發(fā)送的第一作業(yè)任務(wù)消息號(hào)可以包括,所有用戶終端對(duì)應(yīng)的用戶終端ID(身份識(shí)別標(biāo)識(shí));在實(shí)際的應(yīng)用過(guò)程中,根據(jù)接收到的第一作業(yè)任務(wù)提交消息中的用戶終端ID,獲取作業(yè)的運(yùn)行狀態(tài)并反饋給用戶終端ID對(duì)應(yīng)的用戶終端。
在本發(fā)明的另外一種實(shí)施例中,獲取作業(yè)的運(yùn)行狀態(tài),將作業(yè)的運(yùn)行狀態(tài)轉(zhuǎn)換為統(tǒng)一規(guī)范化的運(yùn)行狀態(tài),并反饋給用戶終端,在實(shí)際的應(yīng)用過(guò)程中可以將各個(gè)資源管理框架對(duì)應(yīng)的狀態(tài)機(jī)修改為本發(fā)明實(shí)施例中規(guī)定的運(yùn)行狀態(tài),從而使得用戶無(wú)需針對(duì)不同的資源管理框架具有的不同類型的狀態(tài)機(jī)所處的狀態(tài)進(jìn)行解析,反饋給用戶統(tǒng)一的狀態(tài)規(guī)范,使用戶更加簡(jiǎn)便地清楚任務(wù)的運(yùn)行狀態(tài)。
在本發(fā)明的一種實(shí)現(xiàn)方式中,本發(fā)明中定義的狀態(tài)機(jī)所處的狀態(tài)為:
Submitting:提交;
Accepted;接收;
Running;運(yùn)行;
Finished:完成;
Killed:被殺;
Failed:失??;
如果第一資源管理框架的狀態(tài)機(jī)所處的狀態(tài)為:
NEW:初始狀態(tài);
NEW SAVING:提交作業(yè)請(qǐng)求期間狀態(tài);
SUBMITTED:提交成功;
ACCEPTED:作業(yè)已提交管理平臺(tái)后的狀態(tài);
RUNNING:運(yùn)行;
FINISHED:完成;
FAILED:失敗;
KILLED:被殺。
那么本發(fā)明中還會(huì)將上述狀態(tài)機(jī)修改為本發(fā)明中定義的狀態(tài)機(jī)所處的狀
態(tài),也即:
NEW–>Submitting
NEW SAVING–>Submitting
SUBMITTED–>Submitting
ACCEPTED–>Accepted
RUNNING–>Running
FINISHED–>Finished
FAILED–>Failed
KILLED–>Killed
當(dāng)?shù)谝毁Y源資源管理框架在運(yùn)行上述的作業(yè)的過(guò)程中,可以實(shí)時(shí)地獲取與資源管理框架交互的狀態(tài),即定義的統(tǒng)一的狀態(tài)機(jī)所處的狀態(tài),從而實(shí)時(shí)地監(jiān)控作業(yè)任務(wù)的運(yùn)行狀態(tài),在實(shí)際的應(yīng)用過(guò)程中,可以通過(guò)網(wǎng)頁(yè)的方式將運(yùn)行狀態(tài)展示給用戶。
在實(shí)際的運(yùn)行中,很有可能因?yàn)檎谑褂玫馁Y源管理框架資源量不夠或者性能受限,出現(xiàn)正在使用的資源管理框架運(yùn)行報(bào)錯(cuò)或運(yùn)行失敗,或者,在使用用戶指定的資源管理框架運(yùn)行作業(yè)的過(guò)程中,用戶可能想要使用別的資源管理框架運(yùn)行。那么此時(shí),用戶需要將之前的作業(yè)提交至其他的資源管理框架,以使其他的資源管理框架運(yùn)行該作業(yè),以使該作業(yè)能繼續(xù)正常地運(yùn)行、處理。
而現(xiàn)有技術(shù)中,往往需要將之前提交的作業(yè)任務(wù)提交消息重新編寫(xiě)格式,以匹配所重新選擇的資源管理框架規(guī)定的格式。
而本發(fā)明中,無(wú)需重新編寫(xiě)上述的第一作業(yè)任務(wù)提交消息的格式,僅僅只需要將其中的資源管理框架類型加以改變即可,圖4所示為本發(fā)明實(shí)施例提供的更換資源管理框架的流程圖,如圖4所示,本實(shí)施例的資源管理方法,包括:
S201:接收第二作業(yè)任務(wù)提交消息,第二作業(yè)任務(wù)提交消息中包括:作業(yè)、第一資源需求信息和處理作業(yè)的第二資源管理框架;
本步驟中,用戶可以發(fā)送第二作業(yè)任務(wù)提交消息,而第二作業(yè)任務(wù)提交消息中相對(duì)于第一作業(yè)任務(wù)提交消息改變的僅僅為:將處理作業(yè)的第一資源管理框架更改為此時(shí)處理作業(yè)的第二資源管理框架。
S202:將第一資源需求信息轉(zhuǎn)換為第二資源管理框架可處理的第三資源需求信息;
本步驟執(zhí)行的具體實(shí)現(xiàn)方式與上述的S102相同,此處不再贅述。
S203:將第三資源需求信息和作業(yè)發(fā)送至第二資源管理框架,以使第二資源管理框架根據(jù)第三資源需求信息分配運(yùn)行作業(yè)所需的第二資源,并根據(jù)分配的第二資源運(yùn)行作業(yè)。
本步驟執(zhí)行的具體實(shí)現(xiàn)方式與上述的S103相同,此處不再贅述。
如果在使用用戶指定的資源管理框架運(yùn)行作業(yè)的過(guò)程中,用戶可能想要使用別的資源管理框架運(yùn)行的場(chǎng)景下,在本發(fā)明一種可實(shí)現(xiàn)方式中,當(dāng)接收到第二作業(yè)任務(wù)提交消息時(shí),則默認(rèn)停止使用第一資源管理框架運(yùn)行作業(yè),然后執(zhí)行上述使用第二資源管理框架運(yùn)行作業(yè)的步驟;在另一種實(shí)現(xiàn)方式中,用戶可以提前發(fā)送作業(yè)任務(wù)停止請(qǐng)求消息,當(dāng)接收作業(yè)任務(wù)停止請(qǐng)求消息后,將作業(yè)任務(wù)停止請(qǐng)求消息發(fā)送至第一資源管理框架,以使該第一資源管理框架停止運(yùn)行作業(yè)。然后執(zhí)行上述S201-S203。
本發(fā)明實(shí)施例提供的資源管理方法,用戶只需發(fā)送統(tǒng)一的規(guī)范化作業(yè)任務(wù)消息,無(wú)需在考慮實(shí)際應(yīng)用過(guò)程中,各個(gè)資源管理框架之間的切換,另外,當(dāng)有新的資源管理框架加入時(shí),也只需要將新的資源管理框架按照大數(shù)據(jù)資源管理平臺(tái)支持的統(tǒng)一規(guī)范進(jìn)行轉(zhuǎn)換,如此就可得到大數(shù)據(jù)資源管理平臺(tái)的支持,使得支持多源資源管理框架更加容易實(shí)現(xiàn),且多源資源管理框架更易擴(kuò)展。
本發(fā)明實(shí)施例還公開(kāi)了一種資源管理系統(tǒng),圖5為本發(fā)明實(shí)施例資源管理系統(tǒng)的結(jié)構(gòu)示意圖,參照?qǐng)D5對(duì)本發(fā)明實(shí)施例資源管理系統(tǒng)進(jìn)行詳細(xì)說(shuō)明,具體包括:
第一接收模塊501,用于接收第一作業(yè)任務(wù)提交消息,第一作業(yè)任務(wù)提交消息中包括:待處理的作業(yè)、處理作業(yè)的第一資源需求信息和處理作業(yè)的第一資源管理框架;
第一轉(zhuǎn)換模塊502,用于將第一資源需求信息轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求信息。
第一分配模塊503,用于將第二資源需求信息和作業(yè)發(fā)送至第一資源管理框架,以使第一資源管理框架根據(jù)第二資源需求信息分配運(yùn)行作業(yè)所需的第一資源,并根據(jù)分配的第一資源運(yùn)行作業(yè)。
優(yōu)選的,本發(fā)明實(shí)施例提供的資源管理系統(tǒng)中,第一資源需求信息包括第一資源需求類型標(biāo)識(shí)和第一資源需求量。
優(yōu)選的,本發(fā)明實(shí)施例提供的資源管理系統(tǒng)中,第一轉(zhuǎn)換模塊,包括:
用于將第一資源需求類型標(biāo)識(shí)轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求類型標(biāo)識(shí),和/或,將第一資源需求量轉(zhuǎn)換為第一資源管理框架對(duì)應(yīng)的第二資源需求量。
優(yōu)選的,本發(fā)明實(shí)施例提供的資源管理系統(tǒng),還包括:
第二接收模塊,用于接收第二作業(yè)任務(wù)提交消息,第二作業(yè)任務(wù)提交消息中包括:作業(yè)、第一資源需求信息和處理作業(yè)的第二資源管理框架。
第二轉(zhuǎn)換模塊,用于將第一資源需求信息轉(zhuǎn)換為第二資源管理框架能夠處理的第三資源需求信息。
第二分配模塊,用于將第三資源需求信息和作業(yè)發(fā)送至第二資源管理框架,以使第二資源管理框架根據(jù)第三資源需求信息分配運(yùn)行作業(yè)所需的第二資源,并根據(jù)分配的第二資源運(yùn)行作業(yè)。
優(yōu)選的,本發(fā)明實(shí)施例提供的資源管理系統(tǒng),還包括:
接收停止消息模塊,用于接收作業(yè)任務(wù)停止請(qǐng)求消息。
發(fā)送消息模塊,用于將作業(yè)任務(wù)停止請(qǐng)求消息發(fā)送至第一資源管理框架,以使第一資源管理框架停止運(yùn)行作業(yè)。
優(yōu)選的,本發(fā)明實(shí)施例提供的資源管理系統(tǒng)中,第一接收模塊,包括:用于接收用戶終端發(fā)送的第一作業(yè)任務(wù)提交消息。
優(yōu)選的,本發(fā)明實(shí)施例提供的資源管理系統(tǒng),還包括:
獲取狀態(tài)模塊,用于獲取作業(yè)的運(yùn)行狀態(tài)并反饋給用戶終端。
優(yōu)選的,本發(fā)明實(shí)施例提供的資源管理系統(tǒng)中,獲取狀態(tài)模塊,用于獲取作業(yè)的運(yùn)行狀態(tài),將作業(yè)的運(yùn)行狀態(tài)轉(zhuǎn)換為統(tǒng)一規(guī)范化的運(yùn)行狀態(tài),并反饋給用戶終端。
需要說(shuō)明的是,本發(fā)明實(shí)施例的系統(tǒng)是應(yīng)用上述資源管理方法的系統(tǒng),則上述資源管理方法的所有實(shí)施例均適用于該系統(tǒng),且均能達(dá)到相同或相似的有益效果。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。