一種控制方法、裝置及Hadoop系統(tǒng)的制作方法
【技術領域】
[0001]本申請涉及數(shù)據(jù)處理技術領域,更具體的說是涉及一種控制方法、裝置以及Hadoop 系統(tǒng)。
【背景技術】
[0002]Hadoop系統(tǒng)是一種分布式系統(tǒng),通常,Hadoop系統(tǒng)中運行計算任務的計算機,稱為計算節(jié)點;存儲數(shù)據(jù)的計算機,稱為存儲節(jié)點。
[0003]傳統(tǒng)方式上,Hadoop系統(tǒng)是直接部署在物理機上,計算節(jié)點以及存儲節(jié)點部署在一臺物理機上。Hadoop系統(tǒng)分配計算任務時,優(yōu)先將計算任務分配到存儲該計算任務所需數(shù)據(jù)的物理機上運行,稱之為數(shù)據(jù)本地性,數(shù)據(jù)本地性可以節(jié)省數(shù)據(jù)處理時間;而對于不滿足數(shù)據(jù)本地行的計算任務,優(yōu)先分配到與存儲該計算任務所需數(shù)據(jù)的物理機相同機架的物理機上運行,以在一定程度上保證處理效率。
[0004]而在虛擬化的Hadoop系統(tǒng)中,計算節(jié)點以及存儲節(jié)點部署在同一虛擬機中,Hadoop系統(tǒng)分配計算任務時,優(yōu)先將計算任務分配到存儲該計算任務所需數(shù)據(jù)的虛擬機上運行,而對于不滿足數(shù)據(jù)本地性的計算任務,優(yōu)先分配到相同機架的虛擬機上運行,以保證處理效率。
[0005]但是,在虛擬化的Hadoop系統(tǒng)中,是由虛擬機的宿主機運行計算任務,相同機架的虛擬機,其對應的宿主機不一定為相同機架,因此就會影響計算任務的處理效率。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本申請?zhí)峁┮环N控制方法、裝置以及Hadoop系統(tǒng),保證了在虛擬化的Hadoop系統(tǒng)中,計算任務的處理效率。
[0007]為實現(xiàn)上述目的,本申請?zhí)峁┤缦录夹g方案:
[0008]一種控制方法,應用于虛擬化的Hadoop系統(tǒng)中,所述Hadoop系統(tǒng)中計算節(jié)點以及存儲節(jié)點部署在不同虛擬機中,所述Hadoop系統(tǒng)中每一個宿主機虛擬化出的虛擬機至少包括一個部署計算節(jié)點的虛擬機以及一個部署存儲節(jié)點的虛擬機,所述方法包括:
[0009]獲取計算任務;
[0010]查找存儲所述計算任務所需數(shù)據(jù)的第一存儲節(jié)點;
[0011]判斷所述第一存儲節(jié)點對應的第一宿主機中的第一計算節(jié)點的資源是否滿足所述計算任務的運行要求;
[0012]在所述第一計算節(jié)點的資源不滿足所述運行要求時,調(diào)整所述第一計算節(jié)點占用所述第一宿主機的資源;
[0013]將所述計算任務分配到資源調(diào)整成功的第一計算節(jié)點中運行。
[0014]優(yōu)選地,所述查找存儲所述計算任務所需數(shù)據(jù)的第一存儲節(jié)點包括:
[0015]查找存儲所述計算任務所需數(shù)據(jù)的多個存儲節(jié)點;
[0016]從所述多個存儲節(jié)點中選擇滿足預設條件的一個存儲節(jié)點作為第一存儲節(jié)點。
[0017]優(yōu)選地,在所述第一計算節(jié)點資源調(diào)整失敗時,所述方法還包括:
[0018]返回所述從所述多個存儲節(jié)點中選擇滿足預設條件的一個存儲節(jié)點作為第一存儲節(jié)點的步驟繼續(xù)執(zhí)行,直至當前選擇的第一計算節(jié)點資源調(diào)整成功或者已選擇的各個第一計算節(jié)點資源調(diào)整失敗。
[0019]優(yōu)選地,在所述第一計算節(jié)點的資源調(diào)整失敗時,所述方法還包括:
[0020]將所述第一宿主機中不包括所述第一計算節(jié)點的至少N個節(jié)點進行遷移,N為大于等于1的整數(shù),其中,所述N個節(jié)點包括計算節(jié)點和/或存儲節(jié)點;
[0021]重新執(zhí)行調(diào)整所述第一計算節(jié)點占用所述宿主機的資源,并繼續(xù)執(zhí)行后續(xù)步驟。
[0022]優(yōu)選地,在所述第一計算節(jié)點的資源調(diào)整失敗時,或者在所述節(jié)點遷移失敗時,所述方法還包括:
[0023]將所述計算任務分配到與所述第一宿主機相同機架的第二宿主機中的第二計算節(jié)點運行。
[0024]優(yōu)選地,所述將所述計算任務分配到與所述第一宿主機相同機架的第二宿主機中的第二計算節(jié)點運行之后,所述方法還包括:
[0025]監(jiān)測存儲所述計算任務所需數(shù)據(jù)的第二存儲節(jié)點對應的第三宿主機;
[0026]在所述第三宿主機的資源滿足所述計算任務的運行要求時,將所述第二計算節(jié)點遷移到所述第三宿主機中運行。
[0027]優(yōu)選地,將所述第一宿主機中不包括所述第一計算節(jié)點的至少N個節(jié)點進行遷移包括:
[0028]根據(jù)所述第一計算節(jié)點的資源、所述第一計算節(jié)點的可擴展資源閾值以及所述第一宿主機的資源使用情況,確定需要遷移的N個節(jié)點;
[0029]將所述N個節(jié)點遷移到不包括所述第一宿主機的其他宿主機中。
[0030]—種控制裝置,應用于虛擬化的Hadoop系統(tǒng)中,所述Hadoop系統(tǒng)中計算節(jié)點以及存儲節(jié)點部署在不同虛擬機中,所述Hadoop系統(tǒng)中每一個宿主機虛擬化出的虛擬機至少包括一個部署計算節(jié)點的虛擬機以及一個部署存儲節(jié)點的虛擬機,所述裝置包括:
[0031]任務獲取模塊,用于獲取計算任務;
[0032]節(jié)點查找模塊,用于查找存儲所述計算任務所需數(shù)據(jù)的第一存儲節(jié)點;
[0033]資源判斷模塊,用于判斷所述第一存儲節(jié)點對應的第一宿主機中的第一計算節(jié)點的資源是否滿足所述計算任務的運行要求;
[0034]資源調(diào)整模塊,用于在所述第一計算節(jié)點的資源不滿足所述運行要求時,調(diào)整所述第一計算節(jié)點占用所述第一宿主機的資源;
[0035]第一任務分配模塊,用于將所述計算任務分配到資源調(diào)整成功的第一計算節(jié)點中運行。
[0036]優(yōu)選地,所述節(jié)點查找模塊包括:
[0037]查找子模塊,用于查找存儲所述計算任務所需數(shù)據(jù)的多個存儲節(jié)點;
[0038]選擇模塊,用于從所述多個存儲節(jié)點中選擇滿足預設條件的一個存儲節(jié)點作為第一存儲節(jié)點。
[0039]優(yōu)選地,還包括:
[0040]第一觸發(fā)模塊,用于在所述第一計算節(jié)點資源調(diào)整失敗時,觸發(fā)所述選擇模塊繼續(xù)從所述多個存儲節(jié)點中選擇滿足預設條件的一個存儲節(jié)點作為第一存儲節(jié)點,直至當前選擇的第一計算節(jié)點資源調(diào)整成功或者已選擇的各個第一計算節(jié)點均資源調(diào)整失敗。
[0041]優(yōu)選地,還包括:
[0042]節(jié)點遷移模塊,用于在所述第一計算節(jié)點的資源調(diào)整失敗時,將所述第一宿主機中不包括所述第一計算節(jié)點的至少N個節(jié)點進行遷移,并觸發(fā)所述資源調(diào)整模塊,N為大于等于1的整數(shù),其中,所述N個節(jié)點包括計算節(jié)點和/或存儲節(jié)點。
[0043]優(yōu)選地,還包括:
[0044]第二任務分配模塊,用于在所述第一計算節(jié)點的資源調(diào)整失敗時,或者在所述節(jié)點遷移失敗時,將所述計算任務分配到與所述第一宿主機相同機架的第二宿主機中的第二計算節(jié)點運行。
[0045]優(yōu)選地,還包括:
[0046]監(jiān)測模塊,用于監(jiān)測存儲所述計算任務所需數(shù)據(jù)的第二存儲節(jié)點對應的第三宿主機;
[0047]任務遷移模塊,用于在所述第三宿主機的資源滿足所述計算任務的運行要求時,將所述第二計算節(jié)點遷移到所述第三宿主機中的運行。
[0048]優(yōu)選地,所述節(jié)點遷移模塊具體用于:
[0049]根據(jù)所述第一計算節(jié)點的資源、所述第一計算節(jié)點的可擴展資源閾值以及所述第一宿主機的資源使用情況,確定需要遷移的N個節(jié)點;
[0050]將所述N個節(jié)點遷移到不包括所述第一宿主機的其他宿主機中。
[0051]—種Hadoop系統(tǒng),所述Hadoop系統(tǒng)包括多個虛擬機以及上述所述的控制裝置,每一個宿主機虛擬化出的虛擬機至少包括一個部署計算節(jié)點的虛擬機以及一個部署存儲節(jié)點的虛擬機;
[0052]所述計算節(jié)點以及所述存儲節(jié)點部署在不同虛擬機中。
[0053]經(jīng)由上述的技術方案可知,與現(xiàn)有技術相比,本申請?zhí)峁┝艘环N控制方法和裝置,應用于虛擬化的Hadoop系統(tǒng)中,Hadoop系統(tǒng)中的計算節(jié)點以及存儲節(jié)點部署在不同虛擬機中,所述Hadoop系統(tǒng)中每一個宿主機虛擬化出的虛擬機至少包括一個部署計算節(jié)點的虛擬機以及一個部署存儲節(jié)點的虛擬機,在計算計算任務時,根據(jù)獲取的計算任務,首先確定存儲其運行所需數(shù)據(jù)的第一存儲節(jié)點,當?shù)谝淮鎯?jié)點對應的第一宿主機中的第一計算節(jié)點的資源不能滿足所述計算任務的運行要求,可以通過所述第一計算節(jié)點占用所述宿主機的資源。使得其能夠滿足計算任務的運行要求,從而可以將計算任務分配到資源調(diào)整成功的第一計算節(jié)點中運行。第一計算節(jié)點以及第一存儲節(jié)點對應同一個宿主機,宿主機實際存儲計算任務所需數(shù)據(jù),并實際運行計算任務,使得運行計算任務能夠滿足數(shù)據(jù)本地性,保證了處理效率。