一種計(jì)算任務(wù)分配的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種計(jì)算任務(wù)分配的方法及裝置。
【背景技術(shù)】
[0002]隨著數(shù)據(jù)海量劇增,單一的計(jì)算機(jī)已經(jīng)不能存儲(chǔ)海量數(shù)據(jù),因此,分布式集群受到了廣泛的關(guān)注。在分布式集群中,可以將數(shù)據(jù)分布到多臺(tái)計(jì)算機(jī)中存儲(chǔ)并且可以實(shí)現(xiàn)分布式計(jì)算。Hadoop是分布式系統(tǒng)的基礎(chǔ)架構(gòu),用戶(hù)可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序,充分利用廉價(jià)計(jì)算機(jī)集群的能力對(duì)數(shù)據(jù)進(jìn)行高速運(yùn)算和存儲(chǔ)。
[0003]Hadoop集群就是集分布式存儲(chǔ)、分布式計(jì)算于一體的大數(shù)據(jù)平臺(tái)。在現(xiàn)有技術(shù)中,針對(duì)Hadoop集群中的每個(gè)計(jì)算節(jié)點(diǎn)均分配相同的計(jì)算任務(wù)。而在Hadoop集群中的每個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算能力是不同的。因此,在Hadoop集群中,為了保證計(jì)算能力最低的計(jì)算節(jié)點(diǎn)能夠正常處理計(jì)算任務(wù),因此需要按照計(jì)算能力最低的計(jì)算節(jié)點(diǎn)能夠處理的計(jì)算任務(wù)進(jìn)行分配的。這樣,導(dǎo)致了在Hadoop集群中計(jì)算能力高的計(jì)算節(jié)點(diǎn)無(wú)法處分利用,降低了Hadoop集群的計(jì)算任務(wù)的處理效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的實(shí)施例提供一種計(jì)算任務(wù)分配的方法及裝置,用以通過(guò)根據(jù)各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算能力為其分配計(jì)算任務(wù),實(shí)現(xiàn)充分利用各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算能力,提高Hadoop集群的計(jì)算任務(wù)的處理效率的目的。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]本發(fā)明實(shí)施例提供了一種計(jì)算任務(wù)分配的方法,應(yīng)用于包含有至少一個(gè)計(jì)算節(jié)點(diǎn)的集群,所述方法包括:獲取計(jì)算節(jié)點(diǎn)的計(jì)算資源;所述計(jì)算資源包括所述計(jì)算節(jié)點(diǎn)的中央處理器CPU的內(nèi)核數(shù)及所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存的大小;根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù),確定所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m;m為所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù);根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,確定所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存,并確定所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存是否滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存;在所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存時(shí),為所述計(jì)算節(jié)點(diǎn)分配m個(gè)計(jì)算任務(wù)。
[0007]可選地,還包括:在所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存不滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存時(shí),則根據(jù)計(jì)算任務(wù)的調(diào)整策略,更新所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,并重新執(zhí)行根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,確定所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存,并確定所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存是否滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存;所述計(jì)算任務(wù)的調(diào)整策略是預(yù)先設(shè)置的,用于減少計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)。
[0008]可選地,所述根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù),確定所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m包括:根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù),確定所述計(jì)算節(jié)點(diǎn)的映射map組件的計(jì)算任務(wù)的個(gè)數(shù)為所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù);所述計(jì)算節(jié)點(diǎn)的歸約reduce組件的計(jì)算任務(wù)的個(gè)數(shù)為所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù)的二分之一。
[0009 ]可選地,所述計(jì)算任務(wù)的調(diào)整策略包括:所述計(jì)算節(jié)點(diǎn)的map組件的計(jì)算任務(wù)的個(gè)數(shù)及reduce組件的計(jì)算任務(wù)的個(gè)數(shù)按預(yù)設(shè)比例減少。
[0010]可選地,所述根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,確定所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存包括:根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,利用初始化內(nèi)存管理函數(shù),確定所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存。
[0011]進(jìn)一步的,本發(fā)明實(shí)施例提供了一種計(jì)算任務(wù)分配的裝置,應(yīng)用于包含有至少一個(gè)計(jì)算節(jié)點(diǎn)的集群,所述計(jì)算任務(wù)分配的裝置包括:獲取單元,用于獲取計(jì)算節(jié)點(diǎn)的計(jì)算資源;所述計(jì)算資源包括所述計(jì)算節(jié)點(diǎn)的中央處理器CPU的內(nèi)核數(shù)及所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存的大小;確定單元,用于根據(jù)所述獲取單元獲取的所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù),確定所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m;m為所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù);處理單元,用于根據(jù)所述確定單元確定的所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,確定所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存,并確定所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存是否滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存;分配單元,還用于在所述處理單元確定所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存時(shí),為所述計(jì)算節(jié)點(diǎn)分配m個(gè)計(jì)算任務(wù)。
[0012]可選地,所述處理單元,還用于在所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存不滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存時(shí),則根據(jù)計(jì)算任務(wù)的調(diào)整策略,更新所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,并重新執(zhí)行根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,確定所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存,并確定所述計(jì)算節(jié)點(diǎn)的空閑內(nèi)存是否滿(mǎn)足所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存;所述計(jì)算任務(wù)的調(diào)整策略是預(yù)先設(shè)置的,用于減少計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)。
[0013]可選地,所述確定單元,具體用于根據(jù)所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù),確定所述計(jì)算節(jié)點(diǎn)的映射map組件的計(jì)算任務(wù)的個(gè)數(shù)為所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù);所述計(jì)算節(jié)點(diǎn)的歸約reduce組件的計(jì)算任務(wù)的個(gè)數(shù)為所述計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù)的二分之一。
[00? 4]可選地,所述計(jì)算任務(wù)的調(diào)整策略包括:所述計(jì)算節(jié)點(diǎn)的map組件的計(jì)算任務(wù)的個(gè)數(shù)及reduce組件的計(jì)算任務(wù)的個(gè)數(shù)按預(yù)設(shè)比例減少。
[0015]可選地,所述處理單元,具體用于根據(jù)所述確定單元確定的所述計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,利用初始化內(nèi)存管理函數(shù),確定所述計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存。
[0016]本發(fā)明實(shí)施例提供了一種計(jì)算任務(wù)分配的方法及裝置,應(yīng)用于包含有至少一個(gè)計(jì)算節(jié)點(diǎn)的集群,包括:獲取計(jì)算節(jié)點(diǎn)的計(jì)算資源;計(jì)算資源包括計(jì)算節(jié)點(diǎn)的中央處理器CPU的內(nèi)核數(shù)及計(jì)算節(jié)點(diǎn)的空閑內(nèi)存的大小;根據(jù)計(jì)算節(jié)點(diǎn)的計(jì)算資源中的CPU的內(nèi)核數(shù),確定計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m; m為計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù);根據(jù)計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)的個(gè)數(shù)m,確定計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存,并確定計(jì)算節(jié)點(diǎn)的空閑內(nèi)存是否滿(mǎn)足計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存;在計(jì)算節(jié)點(diǎn)的空閑內(nèi)存滿(mǎn)足計(jì)算節(jié)點(diǎn)的m個(gè)計(jì)算任務(wù)所需的內(nèi)存時(shí),為計(jì)算節(jié)點(diǎn)分配m個(gè)計(jì)算任務(wù)。這樣,計(jì)算任務(wù)分配的裝置在對(duì)計(jì)算節(jié)點(diǎn)分配計(jì)算任務(wù)時(shí),先獲取計(jì)算節(jié)點(diǎn)的計(jì)算資源,根據(jù)計(jì)算資源的CPU的內(nèi)核數(shù)為此計(jì)算節(jié)點(diǎn)分配m個(gè)計(jì)算任務(wù),并進(jìn)一步確定m個(gè)計(jì)算任務(wù)所需的內(nèi)存,確定計(jì)算節(jié)點(diǎn)中空閑的內(nèi)存是否滿(mǎn)足m個(gè)計(jì)算任務(wù)所需的內(nèi)存,在計(jì)算節(jié)點(diǎn)的空閑內(nèi)存可以滿(mǎn)足m個(gè)計(jì)算任務(wù)所需的內(nèi)存時(shí),說(shuō)明計(jì)算節(jié)點(diǎn)可以向m個(gè)計(jì)算任務(wù)提供所需的內(nèi)存,這樣,可以為計(jì)算節(jié)點(diǎn)分配m個(gè)計(jì)算任務(wù)。也就是說(shuō),在本發(fā)明中,計(jì)算任務(wù)分配的裝置可以根據(jù)每個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算資源,為每個(gè)計(jì)算節(jié)點(diǎn)分配計(jì)算任務(wù),這樣在Hadoop集群中,不同的計(jì)算節(jié)點(diǎn)分配到的計(jì)算任務(wù)的個(gè)數(shù)不同,可以充分利用各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算能力,從而實(shí)現(xiàn)了通過(guò)根據(jù)各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算能力為其分配計(jì)算任務(wù),實(shí)現(xiàn)充分利用各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算能力,提高Hadoop集群的計(jì)算任務(wù)的處理效率的目的。
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為本發(fā)明實(shí)施例提供的一種計(jì)算任務(wù)分配的方法的流程示意圖;
[0019]圖2為本發(fā)明實(shí)施例提供的另一種計(jì)算任務(wù)分配的方法的流程示意圖;
[0020]圖3為本發(fā)明實(shí)施例提供的一種計(jì)算任務(wù)分配的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的