亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于分布式文件處理的方法和設(shè)備與流程

文檔序號(hào):12733666閱讀:271來源:國(guó)知局
用于分布式文件處理的方法和設(shè)備與流程

本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種用于分布式文件處理的技術(shù)。



背景技術(shù):

分布式作業(yè)運(yùn)行過程中,往往都會(huì)包含多個(gè)實(shí)例。在大型分布式系統(tǒng)中,實(shí)例的數(shù)目一般會(huì)從一千到十萬的規(guī)模;在分布式作業(yè)運(yùn)行過程中,各個(gè)節(jié)點(diǎn)都要進(jìn)行分布式文件的創(chuàng)建、打開、關(guān)閉等操作。一般每秒抵達(dá)文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備(分布式文件系統(tǒng)中心節(jié)點(diǎn))的請(qǐng)求數(shù)會(huì)達(dá)到幾萬次到數(shù)十萬。

例如,分布式作業(yè)場(chǎng)景中都會(huì)有所有實(shí)例一起打開一組文件的操作,而分布式作業(yè)都會(huì)包含兩個(gè)最基本階段:Map(映射)和Reduce(規(guī)約),Map階段和Reduce階段都會(huì)根據(jù)需要在分布式系統(tǒng)的各個(gè)機(jī)器上執(zhí)行多個(gè)實(shí)例,實(shí)例的個(gè)數(shù)從幾千到十萬,實(shí)例會(huì)對(duì)不同的數(shù)據(jù)執(zhí)行相同的計(jì)算邏輯。

現(xiàn)有技術(shù)中,每個(gè)Map實(shí)例會(huì)打開其輸入文件,同時(shí)會(huì)創(chuàng)建一個(gè)輸出文件來寫入中間數(shù)據(jù),Map實(shí)例共寫出中間文件的數(shù)量為m;接著,每個(gè)Reduce實(shí)例會(huì)打開所有的中間文件,共有n個(gè)Reduce實(shí)例,則共有m*n次文件打開操作,因此,在這一過程中,包含了m*n次對(duì)于文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備的請(qǐng)求。一般的分布式作業(yè)的規(guī)模為:Map實(shí)例總數(shù)為10000,Reduce實(shí)例總數(shù)為10000,經(jīng)過計(jì)算,這種實(shí)現(xiàn)方式,對(duì)于分布式系統(tǒng)中心節(jié)點(diǎn)的請(qǐng)求次數(shù)達(dá)到了一億以上。同時(shí)分布式系統(tǒng)的中心節(jié)點(diǎn)管理了海量文件的元數(shù)據(jù)信息,所以分布式文件系統(tǒng)的中心節(jié)點(diǎn)是性能的瓶頸。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)的目的是提供一種用于分布式文件處理的方法與設(shè)備,以降低分布式作業(yè)任務(wù)共同處理一組文件操作時(shí)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求的次數(shù),提升分布式系統(tǒng)的性能。

根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種在主節(jié)點(diǎn)設(shè)備端用于分布式文件處理的方法,包括:

基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息;

將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;

基于所述從節(jié)點(diǎn)設(shè)備所發(fā)送的元信息讀取請(qǐng)求,將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備。

根據(jù)本申請(qǐng)的另一個(gè)方面,提供了一種在從節(jié)點(diǎn)設(shè)備端用于分布式文件處理的方法,包括:

基于主節(jié)點(diǎn)設(shè)備所分配的分布式作業(yè)任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述分布式作業(yè)任務(wù)的相應(yīng)所述分布式文件的元信息;

基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。

根據(jù)本申請(qǐng)的再一方面,還提供了一種用于分布式文件處理的主節(jié)點(diǎn)設(shè)備,包括:

獲取元信息裝置,用于基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息;

分配任務(wù)裝置,用于將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;

發(fā)送元信息裝置,用于基于所述從節(jié)點(diǎn)設(shè)備所發(fā)送的元信息讀取請(qǐng)求,將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備。

根據(jù)本申請(qǐng)的又一方面,還提供了一種用于分布式文件處理的從節(jié)點(diǎn)設(shè)備,包括:

發(fā)送讀取請(qǐng)求裝置,用于基于主節(jié)點(diǎn)設(shè)備所分配的分布式作業(yè)任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述分布式作業(yè)任務(wù)的相應(yīng)所述分布式文件的元信息;

處理裝置,用于基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。

與現(xiàn)有技術(shù)相比,根據(jù)本申請(qǐng)的實(shí)施例所述方法及設(shè)備,主節(jié)點(diǎn)設(shè)備基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,進(jìn)行處理分布式作業(yè)任務(wù)的一組分布式文件的操作并獲取關(guān)于所述一組分布式文件的元信息;接著,將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;隨后,從節(jié)點(diǎn)設(shè)備向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,主節(jié)點(diǎn)設(shè)備將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備,從節(jié)點(diǎn)設(shè)備基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。這樣,主節(jié)點(diǎn)設(shè)備代替分布式作業(yè)任務(wù)處理分布式文件并獲取文件元信息,分布式作業(yè)任務(wù)直接根據(jù)元信息打開并讀取相應(yīng)的分布式文件,規(guī)避了分布式作業(yè)任務(wù)和文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備的交互,減少了向所述中心節(jié)點(diǎn)發(fā)送的請(qǐng)求次數(shù),提高分布式系統(tǒng)的性能。

附圖說明

通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:

圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于分布式文件處理的系統(tǒng)設(shè)備的結(jié)構(gòu)示意圖;

圖2示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于分布式文件處理的主節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖;

圖3示出根據(jù)本申請(qǐng)一個(gè)方面的又一種用于分布式文件處理的從節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖;

圖4示出根據(jù)本申請(qǐng)一個(gè)方面的一個(gè)優(yōu)選實(shí)施例的一種用于打開分布式文件的各設(shè)備的配合示意圖;

圖5示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于分布式文件處理的系統(tǒng)方法流程示意圖;

圖6示出根據(jù)本申請(qǐng)另一個(gè)方面的一種在主節(jié)點(diǎn)設(shè)備端用于分布式文件處理的方法流程示意圖;

圖7示出根據(jù)本申請(qǐng)一個(gè)方面的又一種在從節(jié)點(diǎn)設(shè)備端用于分布式文件處理的方法流程示意圖。

附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)描述。

圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于分布式文件處理的系統(tǒng)設(shè)備的結(jié)構(gòu)示意圖;所述系統(tǒng)設(shè)備包括主節(jié)點(diǎn)設(shè)備和從節(jié)點(diǎn)設(shè)備;其中,主節(jié)點(diǎn)設(shè)備包括獲取元信息裝置11、分配任務(wù)裝置12和發(fā)送元信息裝置13;從節(jié)點(diǎn)設(shè)備包括發(fā)送讀取請(qǐng)求裝置21和處理裝置22。

本申請(qǐng)通過主節(jié)點(diǎn)設(shè)備中的獲取元信息裝置11用于基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,進(jìn)行處理分布式作業(yè)任務(wù)的一組分布式文件的操作并獲取關(guān)于所述一組分布式文件的元信息;接著,分配任務(wù)裝置12將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;隨后,從節(jié)點(diǎn)設(shè)備中的發(fā)送讀取請(qǐng)求裝置21向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,主節(jié)點(diǎn)設(shè)備中的發(fā)送元信息裝置13將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備,從節(jié)點(diǎn)設(shè)備中的處理裝置22基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。這樣,主節(jié)點(diǎn)設(shè)備代替分布式作業(yè)任務(wù)處理分布式文件并獲取文件元信息,分布式作業(yè)任務(wù)直接根據(jù)元信息打開并讀取相應(yīng)的分布式文件,規(guī)避了分布式作業(yè)任務(wù)和文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備的交互,減少了向所述中心節(jié)點(diǎn)發(fā)送的請(qǐng)求次數(shù),提高分布式系統(tǒng)的性能。

在此,所述分布式作業(yè)是指由有限數(shù)量的子任務(wù)組成的分布式系統(tǒng)執(zhí)行單元稱為分布式作業(yè),一個(gè)分布式作業(yè)的子任務(wù)之間有一定的依賴關(guān)系。所述主節(jié)點(diǎn)設(shè)備是指分布式作業(yè)運(yùn)行過程,負(fù)責(zé)管理分布式作業(yè)狀態(tài),管理分布式作業(yè)使用資源的模塊。每個(gè)分布式作業(yè)有獨(dú)立的主節(jié)點(diǎn)設(shè)備運(yùn)行在分布式系統(tǒng)中。所述文件系統(tǒng)中心節(jié)點(diǎn)是指分布式文件系統(tǒng)中負(fù)責(zé)進(jìn)行元數(shù)據(jù)管理的模塊,負(fù)責(zé)管理分布式系統(tǒng)中的所有文件,記錄文件中的存放位置信息等。特別是分布式系統(tǒng)中文件的打開、創(chuàng)建和關(guān)閉都要經(jīng)過文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備。

所述主節(jié)點(diǎn)設(shè)備包括:獲取元信息裝置11、分配任務(wù)裝置12和發(fā)送 元信息裝置13,如圖2所示。其中,獲取元信息裝置11基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息;分配任務(wù)裝置12將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;發(fā)送元信息裝置13基于所述從節(jié)點(diǎn)設(shè)備所發(fā)送的元信息讀取請(qǐng)求,將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備。

具體地,獲取元信息裝置11基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息。

在一實(shí)施例中,分布式作業(yè)任務(wù)需要打開一組分布式文件,主節(jié)點(diǎn)設(shè)備向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,代替分布式作業(yè)任務(wù)打開該組分布式文件并獲取該組分布式文件相應(yīng)的元信息。

具體地,分配任務(wù)裝置12將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理。

接前例,主節(jié)點(diǎn)設(shè)備將分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理,一個(gè)從節(jié)點(diǎn)設(shè)備可有若干分布式作業(yè)任務(wù),如有2000個(gè)分布式作業(yè)任務(wù),主節(jié)點(diǎn)設(shè)備將這些分布式作業(yè)任務(wù)分配到50臺(tái)從節(jié)點(diǎn)設(shè)備進(jìn)行處理。

具體地,發(fā)送元信息裝置13基于所述從節(jié)點(diǎn)設(shè)備所發(fā)送的元信息讀取請(qǐng)求,將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備。

繼續(xù)接前例,從節(jié)點(diǎn)設(shè)備上的若干分布式作業(yè)任務(wù)需要打開一組分布式文件,從節(jié)點(diǎn)設(shè)備向主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,主節(jié)點(diǎn)將從文件系統(tǒng)中心節(jié)點(diǎn)獲取的元信息發(fā)送給相應(yīng)的需要元信息的從節(jié)點(diǎn)設(shè)備。

優(yōu)選地,所述分布式作業(yè)任務(wù)包括映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)。

在此,映射-規(guī)約分布式作業(yè)是指分布式作業(yè)中的Map(映射)階段和Reduce(規(guī)約)階段,Map階段和Reduce階段都會(huì)根據(jù)本階段負(fù)責(zé)的任務(wù)需要在分布式系統(tǒng)的各個(gè)從節(jié)點(diǎn)設(shè)備上執(zhí)行多個(gè)實(shí)例,實(shí)例的個(gè)數(shù)從幾千到十萬,實(shí)例會(huì)對(duì)不同的數(shù)據(jù)執(zhí)行相同的計(jì)算邏輯。其中,Map負(fù)責(zé)數(shù)據(jù)的過濾分發(fā),Map的實(shí)例會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定 的運(yùn)算之后,將數(shù)據(jù)分配給不同的Reduce實(shí)例使用;Reduce負(fù)責(zé)數(shù)據(jù)的計(jì)算歸并,Reduce實(shí)例會(huì)接收所有Map實(shí)例的輸出數(shù)據(jù),并進(jìn)行運(yùn)算后寫出一個(gè)分布式系統(tǒng)文件。例如,文件A內(nèi)的數(shù)據(jù)是雜亂無章的,經(jīng)過Map后,將文件的數(shù)據(jù)分成若干份,將該若干份數(shù)據(jù)分配給不同的Reduce使用,Reduce接收到數(shù)據(jù)后進(jìn)行運(yùn)算后寫出一個(gè)文件a,該文件a內(nèi)的數(shù)據(jù)是按照某種規(guī)則進(jìn)行排序好的。所述分布式作業(yè)任務(wù)包括映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)是指在分布式作業(yè)過程中Reduce階段所負(fù)責(zé)的任務(wù),Map任務(wù)執(zhí)行時(shí)打開其輸入文件,同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入中間數(shù)據(jù),寫出若干中間文件,所有Map寫出的中間文件為一組分布式文件,Reduce進(jìn)行打開該組分布式文件的任務(wù)為規(guī)約任務(wù)。

更優(yōu)選地,所述獲取元信息裝置11用于:當(dāng)獲取所述規(guī)約任務(wù)時(shí),基于所述規(guī)約任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息。

在此,規(guī)約任務(wù)需要讀取由映射任務(wù)寫出的一組分布式文件時(shí),主節(jié)點(diǎn)設(shè)備基于該讀取請(qǐng)求向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,代替規(guī)約任務(wù)打開所述一組分布式文件,主節(jié)點(diǎn)設(shè)備打開文件后并從文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備獲取該組文件的元信息。

所述從節(jié)點(diǎn)設(shè)備包括:發(fā)送讀取請(qǐng)求裝置21和處理裝置22,如圖3所示。其中,發(fā)送讀取請(qǐng)求裝置21基于主節(jié)點(diǎn)設(shè)備所分配的分布式作業(yè)任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述分布式作業(yè)任務(wù)的相應(yīng)所述分布式文件的元信息;處理裝置22基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。

具體地,發(fā)送讀取請(qǐng)求裝置21基于主節(jié)點(diǎn)設(shè)備所分配的分布式作業(yè)任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述分布式作業(yè)任務(wù)的相應(yīng)所述分布式文件的元信息。

在此,主節(jié)點(diǎn)設(shè)備負(fù)責(zé)調(diào)度從節(jié)點(diǎn)設(shè)備,分布式系統(tǒng)中分配若干從節(jié)點(diǎn)設(shè)備進(jìn)行分布式作業(yè)任務(wù),一個(gè)從節(jié)點(diǎn)設(shè)備上進(jìn)行若干分布式作業(yè)任務(wù)。從節(jié)點(diǎn)設(shè)備根據(jù)其上進(jìn)行的分布式作業(yè)任務(wù)操作,如打開一組分布式文件操作,需向主節(jié)點(diǎn)設(shè)備發(fā)送有關(guān)該組分布式文件的元信息讀取請(qǐng)求, 以獲取相應(yīng)的元信息進(jìn)行后續(xù)分布式任務(wù)的處理。

具體地,處理裝置22基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。

接前例,分布式作業(yè)任務(wù)所在的從節(jié)點(diǎn)設(shè)備向主節(jié)點(diǎn)設(shè)備發(fā)送該任務(wù)需要打開的一組分布式文件的元信息的讀取請(qǐng)求,從而獲取該組分布式文件的元信息,從節(jié)點(diǎn)設(shè)備根據(jù)所獲取的元信息到相應(yīng)的文件存儲(chǔ)設(shè)備中讀取該組文件,進(jìn)而完成打開該組文件的操作。需要說明的是,文件存儲(chǔ)設(shè)備如文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)設(shè)備用于分布式文件系統(tǒng)中負(fù)責(zé)文件存儲(chǔ)的模塊,分布式文件系統(tǒng)中文件的內(nèi)容會(huì)打散存儲(chǔ)到多個(gè)存儲(chǔ)節(jié)點(diǎn)上。

優(yōu)選地,所述分布式作業(yè)任務(wù)包括由映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)。

在此,映射-規(guī)約分布式作業(yè)是指分布式作業(yè)中的Map(映射)階段和Reduce(規(guī)約)階段,其中,Map負(fù)責(zé)數(shù)據(jù)的過濾分發(fā),Map任務(wù)處理時(shí)實(shí)例會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定的運(yùn)算之后,將數(shù)據(jù)分配給不同的Reduce實(shí)例使用;Reduce負(fù)責(zé)數(shù)據(jù)的計(jì)算歸并,Reduce實(shí)例會(huì)接收所有Map任務(wù)的輸出數(shù)據(jù),并進(jìn)行運(yùn)算后寫出一個(gè)分布式系統(tǒng)文件。例如,文件A內(nèi)的數(shù)據(jù)是雜亂無章的,經(jīng)過Map后,將文件的數(shù)據(jù)分成若干份,將該若干份數(shù)據(jù)分配給不同的Reduce使用,Reduce接收到數(shù)據(jù)后進(jìn)行運(yùn)算后寫出一個(gè)文件a,該文件a內(nèi)的數(shù)據(jù)是按照某種一定的規(guī)則進(jìn)行排序好的。所述分布式作業(yè)任務(wù)包括映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)是指分布式作業(yè)過程中Reduce階段所負(fù)責(zé)的任務(wù),Map的實(shí)例會(huì)打開其輸入文件,同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入中間數(shù)據(jù),寫出若干中間文件,所有Map實(shí)例寫出的中間文件為一組分布式文件,Reduce進(jìn)行打開該組分布式文件的任務(wù)為規(guī)約任務(wù)。

更優(yōu)選地,所述發(fā)送讀取請(qǐng)求裝置21基于主節(jié)點(diǎn)設(shè)備所分配的規(guī)約任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述規(guī)約任務(wù)的一組所述分布式文件的元信息。

在一優(yōu)選實(shí)施例中,映射任務(wù)時(shí)可在多個(gè)不同的從節(jié)點(diǎn)設(shè)備進(jìn)行,當(dāng)映射任務(wù)寫出若干輸出文件,一組輸出文件為一組分布式文件,主節(jié)點(diǎn)設(shè) 備可以將規(guī)約任務(wù)和映射任務(wù)分配在同一從節(jié)點(diǎn)設(shè)備,也可以分配到不同的從節(jié)點(diǎn)設(shè)備中,規(guī)約任務(wù)接收到映射輸出文件,需要打開輸出文件,規(guī)約任務(wù)所在的從節(jié)點(diǎn)設(shè)備向主節(jié)點(diǎn)設(shè)備發(fā)送規(guī)約任務(wù)需要打開的一組輸出文件的元信息的讀取請(qǐng)求,從而獲取該組輸出文件的元信息,一個(gè)文件讀取一個(gè)元信息,即分布式文件讀取其對(duì)應(yīng)的元信息。

優(yōu)選地,所述分布式作業(yè)任務(wù)包括由映射-規(guī)約分布式作業(yè)的映射任務(wù)。

如上述說明,映射-規(guī)約分布式作業(yè)是指分布式作業(yè)中的Map(映射)階段和Reduce(規(guī)約)階段,其中,Map負(fù)責(zé)數(shù)據(jù)的過濾分發(fā),Map任務(wù)執(zhí)行時(shí)會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定的運(yùn)算之后,將數(shù)據(jù)分配給不同的Reduce任務(wù)使用。

更優(yōu)選地,所述設(shè)備還包括:映射任務(wù)請(qǐng)求裝置(未示出),用于基于所述映射任務(wù),向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述映射任務(wù)的分布式文件的元信息;映射任務(wù)處理裝置(未示出),用于基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述映射任務(wù);規(guī)約任務(wù)處理裝置(未示出),用于基于所述映射任務(wù)的處理結(jié)果,創(chuàng)建若干所述歸約任務(wù)的一組所述分布式文件,并將所述規(guī)約任務(wù)的一組所述分布式文件發(fā)送至文件存儲(chǔ)設(shè)備,并將所述規(guī)約任務(wù)的一組所述分布式文件的元信息發(fā)送至所述文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備。

在此,分布式作業(yè)場(chǎng)景中,映射任務(wù)需要打開其輸入文件,因分布式系統(tǒng)中的文件的打開、創(chuàng)建和關(guān)閉都要經(jīng)過文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備,所以,映射任務(wù)所在的從節(jié)點(diǎn)設(shè)備向文件系統(tǒng)中心節(jié)點(diǎn)發(fā)送請(qǐng)求,獲取到相應(yīng)的元信息;基于相關(guān)的元信息讀取映射任務(wù)的輸入文件完成打開操作,同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入中間數(shù)據(jù)(Shuffle數(shù)據(jù)),即寫出若干分布式文件。規(guī)約任務(wù)的輸入數(shù)據(jù)為映射任務(wù)的輸出數(shù)據(jù),規(guī)約任務(wù)需要處理映射任務(wù)輸出的一組分布式文件,映射任務(wù)將其創(chuàng)建的一組輸出文件發(fā)送至文件存儲(chǔ)設(shè)備,如文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)設(shè)備用于存儲(chǔ)分布式系統(tǒng)文件,并將該組輸出文件的元信息發(fā)送至文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備,進(jìn)行保存元信息。主節(jié)點(diǎn)設(shè)備需要獲取該組輸出文件時(shí)向中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求。

本申請(qǐng)的一個(gè)優(yōu)選實(shí)施例中,分布式作業(yè)包含兩個(gè)最基本的階段:Map和Reduce,Map階段和Reduce階段都會(huì)根據(jù)需要在分布式系統(tǒng)的各個(gè)從節(jié)點(diǎn)設(shè)備上執(zhí)行多個(gè)實(shí)例,實(shí)例的個(gè)數(shù)從幾千到十萬,實(shí)例會(huì)對(duì)不同的數(shù)據(jù)執(zhí)行相同的計(jì)算邏輯。Map的實(shí)例會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定的運(yùn)算之后,將數(shù)據(jù)分配給不同的Reduce實(shí)例使用,這一階段稱為Shuffle,將一組無規(guī)則的數(shù)據(jù)盡量轉(zhuǎn)換成一組具有一定規(guī)則的數(shù)據(jù)。Reduce的實(shí)例會(huì)接收所有Map實(shí)例的Shuffle的數(shù)據(jù),并進(jìn)行運(yùn)算后寫出為一個(gè)分布式系統(tǒng)文件?,F(xiàn)有分布式作業(yè)的實(shí)現(xiàn)中,對(duì)于規(guī)模大和數(shù)量大的作業(yè)都采用分布式文件系統(tǒng)中的文件作為Shuffle的介質(zhì)。在Shuffle階段,每個(gè)Reduce都要打開每個(gè)Map寫出的文件。

在分布式作業(yè)場(chǎng)景中,每個(gè)Map實(shí)例會(huì)打開其輸入文件,同時(shí)會(huì)創(chuàng)建若干個(gè)輸出文件來寫入Shuffle數(shù)據(jù),Map實(shí)例共寫出m個(gè)Shuffle文件;n個(gè)Reduce實(shí)例根據(jù)從Master讀取的m個(gè)Shuffle文件的元信息,找到對(duì)應(yīng)的文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)讀取Shuffle文件。

以圖4示出的示意圖對(duì)上述分布式作業(yè)場(chǎng)景進(jìn)行詳細(xì)描述:

分布式文件系統(tǒng)中,文件的打開操作是從文件系統(tǒng)中心節(jié)點(diǎn)獲取文件的元信息,然后根據(jù)元信息去文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)讀取文件數(shù)據(jù)。分布式作業(yè)實(shí)例如Map實(shí)例和Reduce實(shí)例,實(shí)例可被分配在同一從節(jié)點(diǎn)設(shè)備上執(zhí)行,也可以被分配在不同的從節(jié)點(diǎn)設(shè)備上執(zhí)行。在分布式作業(yè)運(yùn)行過程中,如果需要多個(gè)實(shí)例打開同一組文件的場(chǎng)景,例如,n個(gè)Reduce實(shí)例打開m個(gè)Shuffle文件的場(chǎng)景,首先,從節(jié)點(diǎn)設(shè)備上的Map實(shí)例打開其輸入文件時(shí),向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于Map輸入文件的元信息;基于所述元信息打開并讀取相應(yīng)所述輸入文件同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入Shuffle數(shù)據(jù),Map實(shí)例共寫出m個(gè)Shuffle文件,并將這些Shuffle文件發(fā)送至文件存儲(chǔ)設(shè)備及其文件的元信息發(fā)送至所述文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備,在步驟1中,由該分布式作業(yè)的Master先和文件系統(tǒng)中心節(jié)點(diǎn)交互打開所有的Shuffle文件,獲取文件的元信息。接著,如步驟2,將元信息發(fā)送給從節(jié)點(diǎn)設(shè)備上所有需要打開Shuffle文件的Reduce實(shí)例。如步驟3,實(shí)例在接收到元信息之后,直接根據(jù)元信息去文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)讀取 文件;從而避免了所有實(shí)例都去向文件系統(tǒng)中心節(jié)點(diǎn)去請(qǐng)求打開文件。因此,對(duì)于n個(gè)Reduce實(shí)例打開m個(gè)Shuffle文件的場(chǎng)景,只有m個(gè)打開操作,也就是僅需要向文件系統(tǒng)中心節(jié)點(diǎn)發(fā)送m次請(qǐng)求。以Shuffle階段為例子:對(duì)于Map實(shí)例數(shù)為10000,輸出Shuffle文件數(shù)為10000,Reduce實(shí)例數(shù)為10000,對(duì)于文件系統(tǒng)中心節(jié)點(diǎn)的請(qǐng)求次數(shù)由之前的1億下降為1萬。

需要說明的是,所述分布式作業(yè)的Master為主節(jié)點(diǎn)設(shè)備,負(fù)責(zé)管理分布式作業(yè)狀態(tài),管理分布式作業(yè)使用資源的模塊;所述分布式作業(yè)實(shí)例在從節(jié)點(diǎn)設(shè)備上執(zhí)行;所述文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)為負(fù)責(zé)文件存儲(chǔ)的模塊,分布式文件系統(tǒng)中的內(nèi)容分配存儲(chǔ)在多個(gè)存儲(chǔ)節(jié)點(diǎn)上。

與現(xiàn)有技術(shù)相比,根據(jù)本申請(qǐng)的實(shí)施例所述方法及設(shè)備,主節(jié)點(diǎn)設(shè)備基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,進(jìn)行處理分布式作業(yè)任務(wù)的一組分布式文件的操作并獲取關(guān)于所述一組分布式文件的元信息;接著,將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;隨后,從節(jié)點(diǎn)設(shè)備向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,主節(jié)點(diǎn)設(shè)備將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備,從節(jié)點(diǎn)設(shè)備基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。這樣,主節(jié)點(diǎn)設(shè)備代替分布式作業(yè)任務(wù)處理分布式文件并獲取文件元信息,分布式作業(yè)任務(wù)直接根據(jù)元信息打開并讀取相應(yīng)的分布式文件,規(guī)避了分布式作業(yè)任務(wù)和文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備的交互,減少了向所述中心節(jié)點(diǎn)發(fā)送的請(qǐng)求次數(shù),提高分布式系統(tǒng)的性能。

圖5示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于分布式文件處理的系統(tǒng)方法的流程示意圖;所述系統(tǒng)方法包括主節(jié)點(diǎn)設(shè)備端的步驟S11、步驟S12和步驟S13,從節(jié)點(diǎn)設(shè)備端的步驟S21和步驟S22。

本申請(qǐng)通過在步驟S11中,主節(jié)點(diǎn)設(shè)備基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,進(jìn)行處理分布式作業(yè)任務(wù)的一組分布式文件的操作并獲取關(guān)于所述一組分布式文件的元信息;接著,在步驟S12中,主節(jié)點(diǎn)設(shè)備將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;隨后,在步驟S21中,從節(jié)點(diǎn)設(shè)備向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,在步 驟S13中,主節(jié)點(diǎn)設(shè)備將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備,在步驟S22中,從節(jié)點(diǎn)設(shè)備基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。這樣,主節(jié)點(diǎn)設(shè)備代替分布式作業(yè)任務(wù)處理分布式文件并獲取文件元信息,分布式作業(yè)任務(wù)直接根據(jù)元信息打開并讀取相應(yīng)的分布式文件,規(guī)避了分布式作業(yè)任務(wù)和文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備的交互,減少了向所述中心節(jié)點(diǎn)發(fā)送的請(qǐng)求次數(shù),提高分布式系統(tǒng)的性能。

在此,所述分布式作業(yè)是指由有限數(shù)量的子任務(wù)組成的分布式系統(tǒng)執(zhí)行單元稱為分布式作業(yè),一個(gè)分布式作業(yè)的子任務(wù)之間有一定的依賴關(guān)系。所述主節(jié)點(diǎn)設(shè)備是指分布式作業(yè)運(yùn)行過程,負(fù)責(zé)管理分布式作業(yè)狀態(tài),管理分布式作業(yè)使用資源的模塊。每個(gè)分布式作業(yè)有獨(dú)立的主節(jié)點(diǎn)設(shè)備運(yùn)行在分布式系統(tǒng)中。所述文件系統(tǒng)中心節(jié)點(diǎn)是指分布式文件系統(tǒng)中負(fù)責(zé)進(jìn)行元數(shù)據(jù)管理的模塊,負(fù)責(zé)管理分布式系統(tǒng)中的所有文件,記錄文件中的存放位置信息等。特別是分布式系統(tǒng)中文件的打開、創(chuàng)建和關(guān)閉都要經(jīng)過文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備。

在所述主節(jié)點(diǎn)設(shè)備端,該方法包括:步驟S11、步驟S12和步驟S13,如圖6所示。其中,在步驟S11中,基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息;在步驟S12中,將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;在步驟S13中,基于所述從節(jié)點(diǎn)設(shè)備所發(fā)送的元信息讀取請(qǐng)求,將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備。

具體地,在步驟S11中,基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息。

在一實(shí)施例中,分布式作業(yè)任務(wù)需要打開一組分布式文件,主節(jié)點(diǎn)設(shè)備向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,代替分布式作業(yè)任務(wù)打開該組分布式文件并獲取該組分布式文件相應(yīng)的元信息。

具體地,在步驟S12中,將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理。

接前例,主節(jié)點(diǎn)設(shè)備將分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理,一個(gè)從節(jié)點(diǎn)設(shè)備可有若干分布式作業(yè)任務(wù),如有2000個(gè)分布式作業(yè)任務(wù),主節(jié)點(diǎn)設(shè)備將這些分布式作業(yè)任務(wù)分配到50臺(tái)從節(jié)點(diǎn)設(shè)備進(jìn)行處理。

具體地,在步驟S13中,基于所述從節(jié)點(diǎn)設(shè)備所發(fā)送的元信息讀取請(qǐng)求,將所獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備。

繼續(xù)接前例,從節(jié)點(diǎn)設(shè)備上的若干分布式作業(yè)任務(wù)需要打開一組分布式文件,從節(jié)點(diǎn)設(shè)備向主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,主節(jié)點(diǎn)將從文件系統(tǒng)中心節(jié)點(diǎn)獲取的元信息發(fā)送給相應(yīng)的需要元信息的從節(jié)點(diǎn)設(shè)備。

優(yōu)選地,所述分布式作業(yè)任務(wù)包括映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)。

在此,映射-規(guī)約分布式作業(yè)是指分布式作業(yè)中的Map(映射)階段和Reduce(規(guī)約)階段,Map階段和Reduce階段都會(huì)根據(jù)本階段負(fù)責(zé)的任務(wù)需要在分布式系統(tǒng)的各個(gè)從節(jié)點(diǎn)設(shè)備上執(zhí)行多個(gè)實(shí)例,實(shí)例的個(gè)數(shù)從幾千到十萬,實(shí)例會(huì)對(duì)不同的數(shù)據(jù)執(zhí)行相同的計(jì)算邏輯。其中,Map負(fù)責(zé)數(shù)據(jù)的過濾分發(fā),Map的實(shí)例會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定的運(yùn)算之后,將數(shù)據(jù)分配給不同的Reduce實(shí)例使用;Reduce負(fù)責(zé)數(shù)據(jù)的計(jì)算歸并,Reduce實(shí)例會(huì)接收所有Map實(shí)例的輸出數(shù)據(jù),并進(jìn)行運(yùn)算后寫出一個(gè)分布式系統(tǒng)文件。例如,文件A內(nèi)的數(shù)據(jù)是雜亂無章的,經(jīng)過Map后,將文件的數(shù)據(jù)分成若干份,將該若干份數(shù)據(jù)分配給不同的Reduce使用,Reduce接收到數(shù)據(jù)后進(jìn)行運(yùn)算后寫出一個(gè)文件a,該文件a內(nèi)的數(shù)據(jù)是按照某種規(guī)則進(jìn)行排序好的。所述分布式作業(yè)任務(wù)包括映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)是指在分布式作業(yè)過程中Reduce階段所負(fù)責(zé)的任務(wù),Map任務(wù)執(zhí)行時(shí)打開其輸入文件,同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入中間數(shù)據(jù),寫出若干中間文件,所有Map寫出的中間文件為一組分布式文件,Reduce進(jìn)行打開該組分布式文件的任務(wù)為規(guī)約任務(wù)。

更優(yōu)選地,所述步驟S11包括:當(dāng)獲取所述規(guī)約任務(wù)時(shí),基于所述規(guī)約任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述分布式作業(yè)任務(wù)的一組分布式文件的元信息。

在此,規(guī)約任務(wù)需要讀取由映射任務(wù)寫出的一組分布式文件時(shí),主節(jié) 點(diǎn)設(shè)備基于該讀取請(qǐng)求向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,代替規(guī)約任務(wù)打開所述一組分布式文件,主節(jié)點(diǎn)設(shè)備打開文件后并從文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備獲取該組文件的元信息。

在所述從節(jié)點(diǎn)設(shè)備端所述方法包括:步驟S21和步驟S22,如圖7所示。其中,在步驟S21中,基于主節(jié)點(diǎn)設(shè)備所分配的分布式作業(yè)任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述分布式作業(yè)任務(wù)的相應(yīng)所述分布式文件的元信息;在步驟S22中,基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。

具體地,在步驟S21中,基于主節(jié)點(diǎn)設(shè)備所分配的分布式作業(yè)任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述分布式作業(yè)任務(wù)的相應(yīng)所述分布式文件的元信息。

在此,主節(jié)點(diǎn)設(shè)備負(fù)責(zé)調(diào)度從節(jié)點(diǎn)設(shè)備,分布式系統(tǒng)中分配若干從節(jié)點(diǎn)設(shè)備進(jìn)行分布式作業(yè)任務(wù),一個(gè)從節(jié)點(diǎn)設(shè)備上進(jìn)行若干分布式作業(yè)任務(wù)。從節(jié)點(diǎn)設(shè)備根據(jù)其上進(jìn)行的分布式作業(yè)任務(wù)操作,如打開一組分布式文件操作,需向主節(jié)點(diǎn)設(shè)備發(fā)送有關(guān)該組分布式文件的元信息讀取請(qǐng)求,以獲取相應(yīng)的元信息進(jìn)行后續(xù)分布式任務(wù)的處理。

具體地,在步驟S22中,基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。

接前例,分布式作業(yè)任務(wù)所在的從節(jié)點(diǎn)設(shè)備向主節(jié)點(diǎn)設(shè)備發(fā)送該任務(wù)需要打開的一組分布式文件的元信息的讀取請(qǐng)求,從而獲取該組分布式文件的元信息,從節(jié)點(diǎn)設(shè)備根據(jù)所獲取的元信息到相應(yīng)的文件存儲(chǔ)設(shè)備中讀取該組文件,進(jìn)而完成打開該組文件的操作。需要說明的是,文件存儲(chǔ)設(shè)備如文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)設(shè)備用于分布式文件系統(tǒng)中負(fù)責(zé)文件存儲(chǔ)的模塊,分布式文件系統(tǒng)中文件的內(nèi)容會(huì)打散存儲(chǔ)到多個(gè)存儲(chǔ)節(jié)點(diǎn)上。

優(yōu)選地,所述分布式作業(yè)任務(wù)包括由映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)。

在此,映射-規(guī)約分布式作業(yè)是指分布式作業(yè)中的Map(映射)階段和Reduce(規(guī)約)階段,其中,Map負(fù)責(zé)數(shù)據(jù)的過濾分發(fā),Map任務(wù)處理時(shí)實(shí)例會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定的運(yùn)算之后,將數(shù)據(jù) 分配給不同的Reduce實(shí)例使用;Reduce負(fù)責(zé)數(shù)據(jù)的計(jì)算歸并,Reduce實(shí)例會(huì)接收所有Map任務(wù)的輸出數(shù)據(jù),并進(jìn)行運(yùn)算后寫出一個(gè)分布式系統(tǒng)文件。例如,文件A內(nèi)的數(shù)據(jù)是雜亂無章的,經(jīng)過Map后,將文件的數(shù)據(jù)分成若干份,將該若干份數(shù)據(jù)分配給不同的Reduce使用,Reduce接收到數(shù)據(jù)后進(jìn)行運(yùn)算后寫出一個(gè)文件a,該文件a內(nèi)的數(shù)據(jù)是按照某種一定的規(guī)則進(jìn)行排序好的。所述分布式作業(yè)任務(wù)包括映射-規(guī)約分布式作業(yè)的規(guī)約任務(wù)是指分布式作業(yè)過程中Reduce階段所負(fù)責(zé)的任務(wù),Map的實(shí)例會(huì)打開其輸入文件,同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入中間數(shù)據(jù),寫出若干中間文件,所有Map實(shí)例寫出的中間文件為一組分布式文件,Reduce進(jìn)行打開該組分布式文件的任務(wù)為規(guī)約任務(wù)。

更優(yōu)選地,在步驟S21中,基于主節(jié)點(diǎn)設(shè)備所分配的規(guī)約任務(wù),向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,以獲取所述規(guī)約任務(wù)的一組所述分布式文件的元信息。

在一優(yōu)選實(shí)施例中,映射任務(wù)時(shí)可在多個(gè)不同的從節(jié)點(diǎn)設(shè)備進(jìn)行,當(dāng)映射任務(wù)寫出若干輸出文件,一組輸出文件為一組分布式文件,主節(jié)點(diǎn)設(shè)備可以將規(guī)約任務(wù)和映射任務(wù)分配在同一從節(jié)點(diǎn)設(shè)備,也可以分配到不同的從節(jié)點(diǎn)設(shè)備中,規(guī)約任務(wù)接收到映射輸出文件,需要打開輸出文件,規(guī)約任務(wù)所在的從節(jié)點(diǎn)設(shè)備向主節(jié)點(diǎn)設(shè)備發(fā)送規(guī)約任務(wù)需要打開的一組輸出文件的元信息的讀取請(qǐng)求,從而獲取該組輸出文件的元信息,一個(gè)文件讀取一個(gè)元信息,即分布式文件讀取其對(duì)應(yīng)的元信息。

優(yōu)選地,所述分布式作業(yè)任務(wù)包括由映射-規(guī)約分布式作業(yè)的映射任務(wù)。

如上述說明,映射-規(guī)約分布式作業(yè)是指分布式作業(yè)中的Map(映射)階段和Reduce(規(guī)約)階段,其中,Map負(fù)責(zé)數(shù)據(jù)的過濾分發(fā),Map任務(wù)執(zhí)行時(shí)會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定的運(yùn)算之后,將數(shù)據(jù)分配給不同的Reduce任務(wù)使用。

更優(yōu)選地,所述方法還包括:基于所述映射任務(wù),向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于所述映射任務(wù)的分布式文件的元信息;基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述映射任務(wù);基于 所述映射任務(wù)的處理結(jié)果,創(chuàng)建若干所述歸約任務(wù)的一組所述分布式文件,并將所述規(guī)約任務(wù)的一組所述分布式文件發(fā)送至文件存儲(chǔ)設(shè)備,并將所述規(guī)約任務(wù)的一組所述分布式文件的元信息發(fā)送至所述文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備。

在此,分布式作業(yè)場(chǎng)景中,映射任務(wù)需要打開其輸入文件,因分布式系統(tǒng)中的文件的打開、創(chuàng)建和關(guān)閉都要經(jīng)過文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備,所以,映射任務(wù)所在的從節(jié)點(diǎn)設(shè)備向文件系統(tǒng)中心節(jié)點(diǎn)發(fā)送請(qǐng)求,獲取到相應(yīng)的元信息;基于相關(guān)的元信息讀取映射任務(wù)的輸入文件完成打開操作,同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入中間數(shù)據(jù)(Shuffle數(shù)據(jù)),即寫出若干分布式文件。規(guī)約任務(wù)的輸入數(shù)據(jù)為映射任務(wù)的輸出數(shù)據(jù),規(guī)約任務(wù)需要處理映射任務(wù)輸出的一組分布式文件,映射任務(wù)將其創(chuàng)建的一組輸出文件發(fā)送至文件存儲(chǔ)設(shè)備,如文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)設(shè)備用于存儲(chǔ)分布式系統(tǒng)文件,并將該組輸出文件的元信息發(fā)送至文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備,進(jìn)行保存元信息。主節(jié)點(diǎn)設(shè)備需要獲取該組輸出文件時(shí)向中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求。

本申請(qǐng)的一個(gè)優(yōu)選實(shí)施例中,分布式作業(yè)包含兩個(gè)最基本的階段:Map和Reduce,Map階段和Reduce階段都會(huì)根據(jù)需要在分布式系統(tǒng)的各個(gè)從節(jié)點(diǎn)設(shè)備上執(zhí)行多個(gè)實(shí)例,實(shí)例的個(gè)數(shù)從幾千到十萬,實(shí)例會(huì)對(duì)不同的數(shù)據(jù)執(zhí)行相同的計(jì)算邏輯。Map的實(shí)例會(huì)讀取分布式文件系統(tǒng)中的文件,進(jìn)行一定的運(yùn)算之后,將數(shù)據(jù)分配給不同的Reduce實(shí)例使用,這一階段稱為Shuffle,將一組無規(guī)則的數(shù)據(jù)盡量轉(zhuǎn)換成一組具有一定規(guī)則的數(shù)據(jù)。Reduce的實(shí)例會(huì)接收所有Map實(shí)例的Shuffle的數(shù)據(jù),并進(jìn)行運(yùn)算后寫出為一個(gè)分布式系統(tǒng)文件?,F(xiàn)有分布式作業(yè)的實(shí)現(xiàn)中,對(duì)于規(guī)模大和數(shù)量大的作業(yè)都采用分布式文件系統(tǒng)中的文件作為Shuffle的介質(zhì)。在Shuffle階段,每個(gè)Reduce都要打開每個(gè)Map寫出的文件。

在分布式作業(yè)場(chǎng)景中,每個(gè)Map實(shí)例會(huì)打開其輸入文件,同時(shí)會(huì)創(chuàng)建若干個(gè)輸出文件來寫入Shuffle數(shù)據(jù),Map實(shí)例共寫出m個(gè)Shuffle文件;n個(gè)Reduce實(shí)例根據(jù)從Master讀取的m個(gè)Shuffle文件的元信息,找到對(duì)應(yīng)的文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)讀取Shuffle文件。以圖4示出的示意圖對(duì)上述分布式作業(yè)場(chǎng)景進(jìn)行詳細(xì)描述:

分布式文件系統(tǒng)中,文件的打開操作是從文件系統(tǒng)中心節(jié)點(diǎn)獲取文件的元信息,然后根據(jù)元信息去文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)讀取文件數(shù)據(jù)。分布式作業(yè)實(shí)例如Map實(shí)例和Reduce實(shí)例,實(shí)例可被分配在同一從節(jié)點(diǎn)設(shè)備上執(zhí)行,也可以被分配在不同的從節(jié)點(diǎn)設(shè)備上執(zhí)行。在分布式作業(yè)運(yùn)行過程中,如果需要多個(gè)實(shí)例打開同一組文件的場(chǎng)景,例如,n個(gè)Reduce實(shí)例打開m個(gè)Shuffle文件的場(chǎng)景,首先,從節(jié)點(diǎn)設(shè)備上的Map實(shí)例打開其輸入文件時(shí),向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,以獲取關(guān)于Map輸入文件的元信息;基于所述元信息打開并讀取相應(yīng)所述輸入文件同時(shí)會(huì)創(chuàng)建若干輸出文件來寫入Shuffle數(shù)據(jù),Map實(shí)例共寫出m個(gè)Shuffle文件,并將這些Shuffle文件發(fā)送至文件存儲(chǔ)設(shè)備及其文件的元信息發(fā)送至所述文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備,在步驟1中,由該分布式作業(yè)的Master先和文件系統(tǒng)中心節(jié)點(diǎn)交互打開所有的Shuffle文件,獲取文件的元信息。接著,如步驟2,將元信息發(fā)送給從節(jié)點(diǎn)設(shè)備上所有需要打開Shuffle文件的Reduce實(shí)例。如步驟3,實(shí)例在接收到元信息之后,直接根據(jù)元信息去文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)讀取文件;從而避免了所有實(shí)例都去向文件系統(tǒng)中心節(jié)點(diǎn)去請(qǐng)求打開文件。因此,對(duì)于n個(gè)Reduce實(shí)例打開m個(gè)Shuffle文件的場(chǎng)景,只有m個(gè)打開操作,也就是僅需要向文件系統(tǒng)中心節(jié)點(diǎn)發(fā)送m次請(qǐng)求。以Shuffle階段為例子:對(duì)于Map實(shí)例數(shù)為10000,輸出Shuffle文件數(shù)為10000,Reduce實(shí)例數(shù)為10000,對(duì)于文件系統(tǒng)中心節(jié)點(diǎn)的請(qǐng)求次數(shù)由之前的1億下降為1萬。

需要說明的是,所述分布式作業(yè)的Master為主節(jié)點(diǎn)設(shè)備,負(fù)責(zé)管理分布式作業(yè)狀態(tài),管理分布式作業(yè)使用資源的模塊;所述分布式作業(yè)實(shí)例在從節(jié)點(diǎn)設(shè)備上執(zhí)行;所述文件系統(tǒng)存儲(chǔ)節(jié)點(diǎn)為負(fù)責(zé)文件存儲(chǔ)的模塊,分布式文件系統(tǒng)中的內(nèi)容分配存儲(chǔ)在多個(gè)存儲(chǔ)節(jié)點(diǎn)上。

與現(xiàn)有技術(shù)相比,根據(jù)本申請(qǐng)的實(shí)施例所述方法及設(shè)備,主節(jié)點(diǎn)設(shè)備基于分布式作業(yè)任務(wù)向文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備發(fā)送請(qǐng)求,進(jìn)行處理分布式作業(yè)任務(wù)的一組分布式文件的操作并獲取關(guān)于所述一組分布式文件的元信息;接著,將所述分布式作業(yè)任務(wù)分配給若干從節(jié)點(diǎn)設(shè)備進(jìn)行處理;隨后,從節(jié)點(diǎn)設(shè)備向所述主節(jié)點(diǎn)設(shè)備發(fā)送元信息讀取請(qǐng)求,主節(jié)點(diǎn)設(shè)備將所 獲取的分布式文件的元信息發(fā)送給相應(yīng)所述從節(jié)點(diǎn)設(shè)備,從節(jié)點(diǎn)設(shè)備基于所述元信息打開并讀取相應(yīng)所述分布式文件,以處理所述分布式作業(yè)任務(wù)。這樣,主節(jié)點(diǎn)設(shè)備代替分布式作業(yè)任務(wù)處理分布式文件并獲取文件元信息,分布式作業(yè)任務(wù)直接根據(jù)元信息打開并讀取相應(yīng)的分布式文件,規(guī)避了分布式作業(yè)任務(wù)和文件系統(tǒng)中心節(jié)點(diǎn)設(shè)備的交互,減少了向所述中心節(jié)點(diǎn)發(fā)送的請(qǐng)求次數(shù),提高分布式系統(tǒng)的性能。

需要注意的是,本申請(qǐng)可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,可采用專用集成電路(ASIC)、通用目的計(jì)算機(jī)或任何其他類似硬件設(shè)備來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本申請(qǐng)的軟件程序可以通過處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本申請(qǐng)的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲(chǔ)器,磁或光驅(qū)動(dòng)器或軟磁盤及類似設(shè)備。另外,本申請(qǐng)的一些步驟或功能可采用硬件來實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。

另外,本申請(qǐng)的一部分可被應(yīng)用為計(jì)算機(jī)程序產(chǎn)品,例如計(jì)算機(jī)程序指令,當(dāng)其被計(jì)算機(jī)執(zhí)行時(shí),通過該計(jì)算機(jī)的操作,可以調(diào)用或提供根據(jù)本申請(qǐng)的方法和/或技術(shù)方案。而調(diào)用本申請(qǐng)的方法的程序指令,可能被存儲(chǔ)在固定的或可移動(dòng)的記錄介質(zhì)中,和/或通過廣播或其他信號(hào)承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲(chǔ)在根據(jù)所述程序指令運(yùn)行的計(jì)算機(jī)設(shè)備的工作存儲(chǔ)器中。在此,根據(jù)本申請(qǐng)的一個(gè)實(shí)施例包括一個(gè)裝置,該裝置包括用于存儲(chǔ)計(jì)算機(jī)程序指令的存儲(chǔ)器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計(jì)算機(jī)程序指令被該處理器執(zhí)行時(shí),觸發(fā)該裝置運(yùn)行基于前述根據(jù)本申請(qǐng)的多個(gè)實(shí)施例的方法和/或技術(shù)方案。

對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本申請(qǐng)不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請(qǐng)的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請(qǐng)。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請(qǐng)的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請(qǐng)內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝 置權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過軟件或者硬件來實(shí)現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1