本發(fā)明實(shí)施例涉及數(shù)據(jù)處理技術(shù),尤其涉及一種分布式數(shù)據(jù)處理方法、裝置及系統(tǒng)。
背景技術(shù):隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,海量數(shù)據(jù)時(shí)代已經(jīng)來(lái)臨,如何對(duì)海量數(shù)據(jù)進(jìn)行處理成為了必須要面對(duì)的嚴(yán)峻考驗(yàn)。映射-化簡(jiǎn)(Map-Reduce)系統(tǒng)是一種分布式的并行系統(tǒng),通常應(yīng)用于分布式海量數(shù)據(jù)處理場(chǎng)景。Map-Reduce系統(tǒng)通過(guò)映射(Map)和化簡(jiǎn)(Reduce)過(guò)程實(shí)現(xiàn)對(duì)數(shù)據(jù)的分布式處理?,F(xiàn)有技術(shù)的Map-Reduce系統(tǒng)中,用于數(shù)據(jù)處理的工作節(jié)點(diǎn)通常為多個(gè),客戶端將待處理的文件劃分為多個(gè)數(shù)據(jù)塊后,將數(shù)據(jù)塊分塊上傳至各個(gè)工作節(jié)點(diǎn)。但是,由于工作節(jié)點(diǎn)執(zhí)行的Map任務(wù)所對(duì)應(yīng)的多個(gè)數(shù)據(jù)塊并不一定全都存儲(chǔ)在該工作節(jié)點(diǎn)上,則需要將其他工作節(jié)點(diǎn)上的數(shù)據(jù)塊遷移到一個(gè)工作節(jié)點(diǎn)上,再對(duì)該節(jié)點(diǎn)上的數(shù)據(jù)塊執(zhí)行Map任務(wù)。但由于Map-Reduce系統(tǒng)中處理的數(shù)據(jù)塊的容量都比較大,數(shù)據(jù)塊遷移過(guò)程會(huì)勢(shì)必造成網(wǎng)絡(luò)流量大的問(wèn)題,影響了系統(tǒng)的計(jì)算效率。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供一種分布式數(shù)據(jù)處理方法、裝置及系統(tǒng),以避免分布式數(shù)據(jù)處理過(guò)程中各工作節(jié)點(diǎn)間的數(shù)據(jù)遷移造成的網(wǎng)絡(luò)流量大的問(wèn)題,提高系統(tǒng)的分布式數(shù)據(jù)處理效果。本發(fā)明實(shí)施例提供一種分布式數(shù)據(jù)處理方法,包括:根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成映射Map任務(wù),其中,所述上傳節(jié)點(diǎn)指示信息包括多個(gè)數(shù)據(jù)塊分別對(duì)應(yīng)的工作節(jié)點(diǎn)的地址,所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊分布在發(fā)送所述任務(wù)獲取請(qǐng)求的工作節(jié)點(diǎn)上;將所述Map任務(wù)分配給所述工作節(jié)點(diǎn),以使所述工作節(jié)點(diǎn)對(duì)所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。本發(fā)明實(shí)施例提供一種分布式數(shù)據(jù)處理裝置,包括:任務(wù)生成單元,用于根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成映射Map任務(wù),其中,所述上傳節(jié)點(diǎn)指示信息包括多個(gè)數(shù)據(jù)塊分別對(duì)應(yīng)的工作節(jié)點(diǎn)的地址,所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊分布在發(fā)送所述任務(wù)獲取請(qǐng)求的工作節(jié)點(diǎn)上;任務(wù)分配單元,用于將所述Map任務(wù)分配給所述工作節(jié)點(diǎn),以使所述工作節(jié)點(diǎn)對(duì)所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。本發(fā)明實(shí)施例提供一種分布式數(shù)據(jù)處理系統(tǒng),包括主節(jié)點(diǎn)和至少兩個(gè)工作節(jié)點(diǎn),其中,所述主節(jié)點(diǎn)為本發(fā)明提供的分布式數(shù)據(jù)處理裝置;所述工作節(jié)點(diǎn)用于向所述主節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求,以及接收所述主節(jié)點(diǎn)分配的映射Map任務(wù),對(duì)所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。由上述技術(shù)方案可知,本發(fā)明提供的分布式數(shù)據(jù)處理方法、裝置及系統(tǒng),主節(jié)點(diǎn)根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成Map任務(wù),將Map任務(wù)分配給工作節(jié)點(diǎn),以使工作節(jié)點(diǎn)對(duì)Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。由于Map任務(wù)是主節(jié)點(diǎn)在工作節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求時(shí)根據(jù)上傳節(jié)點(diǎn)指示信息生成的,該Map任務(wù)對(duì)應(yīng)于該工作節(jié)點(diǎn)上的數(shù)據(jù)塊,因此,工作節(jié)點(diǎn)根據(jù)該Map任務(wù)對(duì)數(shù)據(jù)塊進(jìn)行處理時(shí),無(wú)需從其他工作節(jié)點(diǎn)進(jìn)行數(shù)據(jù)塊的遷移,避免了分布式數(shù)據(jù)處理過(guò)程中各工作節(jié)點(diǎn)間的數(shù)據(jù)遷移造成的網(wǎng)絡(luò)流量大的問(wèn)題,也避免了磁盤讀寫所占用的系統(tǒng)資源,提高系統(tǒng)的分布式數(shù)據(jù)處理效果。附圖說(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為本發(fā)明實(shí)施例一提供的分布式數(shù)據(jù)處理方法流程圖;圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)塊分布示意圖;圖3為本發(fā)明實(shí)施例二提供的分布式數(shù)據(jù)處理方法流程圖;圖4為本發(fā)明實(shí)施例二提供的任務(wù)請(qǐng)求和分配示意圖;圖5為本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)塊結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例二提供的另一種數(shù)據(jù)塊結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例三提供的分布式數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例四提供的分布式數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例五提供的一種分布式數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例五提供的另一種分布式數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)示意圖。具體實(shí)施方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(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ù)的范圍。實(shí)施例一圖1為本發(fā)明實(shí)施例一提供的分布式數(shù)據(jù)處理方法流程圖。如圖1所示,本實(shí)施例提供的分布式數(shù)據(jù)處理方法具體應(yīng)用于Map-Reduce系統(tǒng)的數(shù)據(jù)處理過(guò)程,該Map-Reduce系統(tǒng)具體可以包括主節(jié)點(diǎn)和至少兩個(gè)工作節(jié)點(diǎn)。本實(shí)施例提供的分布式數(shù)據(jù)處理方法可以通過(guò)分布式數(shù)據(jù)處理裝置來(lái)執(zhí)行,該分布式數(shù)據(jù)處理裝置可以為主節(jié)點(diǎn),可以通過(guò)軟件和/或硬件的方式來(lái)實(shí)現(xiàn)。本實(shí)施例提供的分布式數(shù)據(jù)處理方法具體包括:步驟10、主節(jié)點(diǎn)根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成映射Map任務(wù),其中,所述上傳節(jié)點(diǎn)指示信息包括多個(gè)數(shù)據(jù)塊分別對(duì)應(yīng)的工作節(jié)點(diǎn)的地址,所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊分布在發(fā)送所述任務(wù)獲取請(qǐng)求的工作節(jié)點(diǎn)上;具體地,用戶可以通過(guò)客戶端與該Map-Reduce系統(tǒng)的主節(jié)點(diǎn)和工作節(jié)點(diǎn)交互,用戶需要對(duì)某個(gè)文件進(jìn)行處理,例如統(tǒng)計(jì)該文件中所有單詞出現(xiàn)的次數(shù),可以向主節(jié)點(diǎn)發(fā)送文件處理請(qǐng)求,該文件處理請(qǐng)求中可以攜帶待處理文件的文件信息,文件信息具體可以包括該待處理文件的容量等信息。主節(jié)點(diǎn)當(dāng)接收到該文件處理請(qǐng)求時(shí),根據(jù)該文件信息生成文件劃分指示信息和上傳節(jié)點(diǎn)指示信息并發(fā)送給客戶端,該文件劃分指示信息具體用以指示客戶端以預(yù)設(shè)數(shù)據(jù)塊容量(如64M)將待處理文件劃分為多個(gè)數(shù)據(jù)塊,具體可以為各數(shù)據(jù)塊分配標(biāo)識(shí),該標(biāo)識(shí)可以為順序編碼。該上傳節(jié)點(diǎn)指示信息包括客戶端劃分生成的數(shù)據(jù)塊分別對(duì)應(yīng)的工作節(jié)點(diǎn)的地址??蛻舳丝梢愿鶕?jù)該文件劃分指示信息將待處理文件劃分為多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的容量為該預(yù)設(shè)數(shù)據(jù)塊容量,并根據(jù)上傳節(jié)點(diǎn)指示信息中的數(shù)據(jù)塊與工作節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,將各數(shù)據(jù)塊發(fā)送至對(duì)應(yīng)的工作節(jié)點(diǎn)。工作節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求,以獲取Map任務(wù)。主節(jié)點(diǎn)接收到該任務(wù)獲取請(qǐng)求時(shí),根據(jù)上傳節(jié)點(diǎn)指示信息可以獲知發(fā)送該任務(wù)獲取請(qǐng)求的工作節(jié)點(diǎn)上的數(shù)據(jù)塊的情況。例如發(fā)送該任務(wù)獲取請(qǐng)求的工作節(jié)點(diǎn)為第一工作節(jié)點(diǎn),客戶端根據(jù)該上傳節(jié)點(diǎn)指示信息將標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊發(fā)送給該第一工作節(jié)點(diǎn)。則主節(jié)點(diǎn)根據(jù)該上傳節(jié)點(diǎn)指示信息可以獲知第一工作節(jié)點(diǎn)上存在的數(shù)據(jù)塊標(biāo)識(shí)分別為1、5和8,則可以生成針對(duì)于標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊的Map任務(wù)。以下結(jié)合圖2做詳細(xì)說(shuō)明。圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)塊分布示意圖。如圖2所示,客戶端根據(jù)上傳節(jié)點(diǎn)指示信息將標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊發(fā)送給該第一工作節(jié)點(diǎn),將標(biāo)識(shí)為3、4和9的數(shù)據(jù)塊發(fā)送給第二工作節(jié)點(diǎn),將標(biāo)識(shí)為2、6和7的數(shù)據(jù)塊發(fā)送給第三工作節(jié)點(diǎn)。當(dāng)?shù)谝还ぷ鞴?jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求時(shí),主節(jié)點(diǎn)生成針對(duì)于標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊的Map任務(wù),當(dāng)?shù)诙ぷ鞴?jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求時(shí),主節(jié)點(diǎn)生成針對(duì)于標(biāo)識(shí)為3、4和9的數(shù)據(jù)塊的Map任務(wù),當(dāng)?shù)谌ぷ鞴?jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求時(shí),主節(jié)點(diǎn)生成針對(duì)于標(biāo)識(shí)為2、6和7的數(shù)據(jù)塊的Map任務(wù)。步驟20、所述主節(jié)點(diǎn)將所述Map任務(wù)分配給所述工作節(jié)點(diǎn),以使所述工作節(jié)點(diǎn)對(duì)所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。主節(jié)點(diǎn)將該Map任務(wù)分配給工作節(jié)點(diǎn),該工作節(jié)點(diǎn)對(duì)該Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。例如,上述第一工作節(jié)點(diǎn)分別對(duì)標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。當(dāng)用戶需要對(duì)待處理文件中所有單詞出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì)時(shí),對(duì)數(shù)據(jù)塊的處理過(guò)程可以為對(duì)該數(shù)據(jù)塊中的所有單詞出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì)。本實(shí)施例提供的分布式數(shù)據(jù)處理方法,主節(jié)點(diǎn)根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成Map任務(wù),將Map任務(wù)分配給工作節(jié)點(diǎn),以使工作節(jié)點(diǎn)對(duì)Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。由于Map任務(wù)是主節(jié)點(diǎn)在工作節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求時(shí)根據(jù)上傳節(jié)點(diǎn)指示信息生成的,該Map任務(wù)對(duì)應(yīng)于該工作節(jié)點(diǎn)上的數(shù)據(jù)塊,因此,工作節(jié)點(diǎn)根據(jù)該Map任務(wù)對(duì)數(shù)據(jù)塊進(jìn)行處理時(shí),無(wú)需從其他工作節(jié)點(diǎn)進(jìn)行數(shù)據(jù)塊的遷移,避免了分布式數(shù)據(jù)處理過(guò)程中各工作節(jié)點(diǎn)間的數(shù)據(jù)遷移造成的網(wǎng)絡(luò)流量大的問(wèn)題,也避免了磁盤讀寫所占用的系統(tǒng)資源,提高系統(tǒng)的分布式數(shù)據(jù)處理效果。實(shí)施例二圖3為本發(fā)明實(shí)施例二提供的分布式數(shù)據(jù)處理方法流程圖。如圖3所示,本實(shí)施例提供的分布式數(shù)據(jù)處理方法在圖1所示實(shí)施例的基礎(chǔ)上,步驟10,主節(jié)點(diǎn)根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成映射Map任務(wù)之前,具體還可以包括如下步驟:步驟30、所述主節(jié)點(diǎn)根據(jù)客戶端發(fā)送所述文件信息,生成文件劃分指示信息和所述上傳節(jié)點(diǎn)指示信息,將所述文件劃分指示信息和所述上傳節(jié)點(diǎn)指示信息發(fā)送給所述客戶端,以使所述客戶端根據(jù)所述文件劃分指示信息將待處理文件劃分為多個(gè)所述數(shù)據(jù)塊,根據(jù)所述上傳節(jié)點(diǎn)指示信息將各所述數(shù)據(jù)塊分別發(fā)送給對(duì)應(yīng)的工作節(jié)點(diǎn)。具體地,文件劃分指示信息可以為預(yù)設(shè)數(shù)據(jù)塊容量信息,客戶端可以根據(jù)該文件劃分指示信息將待處理文件換分為多個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊的容量與預(yù)設(shè)數(shù)據(jù)塊容量相等??蛻舳烁鶕?jù)上傳節(jié)點(diǎn)指示信息中每個(gè)數(shù)據(jù)塊對(duì)應(yīng)的工作節(jié)點(diǎn)的地址,將各數(shù)據(jù)塊上傳至對(duì)應(yīng)的工作節(jié)點(diǎn)。優(yōu)選地,上傳節(jié)點(diǎn)指示信息中每個(gè)數(shù)據(jù)塊可以對(duì)應(yīng)于至少兩個(gè)工作節(jié)點(diǎn)的地址,客戶端可以根據(jù)該上傳節(jié)點(diǎn)指示信息將一個(gè)數(shù)據(jù)塊發(fā)送給至少兩個(gè)工作節(jié)點(diǎn),例如,將標(biāo)識(shí)為1的數(shù)據(jù)塊分別發(fā)送給第一工作節(jié)點(diǎn)和第二工作節(jié)點(diǎn),以實(shí)現(xiàn)對(duì)數(shù)據(jù)塊的備份,提高數(shù)據(jù)的可靠性。在本實(shí)施例中,步驟10,主節(jié)點(diǎn)根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成映射Map任務(wù),具體可以包括如下步驟:步驟101、所述主節(jié)點(diǎn)當(dāng)接收到所述工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求時(shí),根據(jù)所述上傳節(jié)點(diǎn)指示信息確定發(fā)送給所述工作節(jié)點(diǎn)的數(shù)據(jù)塊,獲取所述工作節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài);數(shù)據(jù)塊的處理狀態(tài)具體可以包括未處理和已處理兩種,可以通過(guò)真值表的方式來(lái)記錄數(shù)據(jù)塊的處理狀態(tài),如已處理的數(shù)據(jù)塊標(biāo)記為“真”,未處理的數(shù)據(jù)塊標(biāo)記為“假”,或者已處理的數(shù)據(jù)塊標(biāo)記為“1”,未處理的數(shù)據(jù)塊標(biāo)記為“0”,記錄數(shù)據(jù)塊的處理狀態(tài)的方式可以根據(jù)實(shí)際需要來(lái)設(shè)置,不以本實(shí)施例為限。步驟102、所述主節(jié)點(diǎn)根據(jù)所述處理狀態(tài)為未處理的數(shù)據(jù)塊生成所述Map任務(wù),將所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài)更改為已處理。例如,主節(jié)點(diǎn)接收到第一工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求,主節(jié)點(diǎn)根據(jù)上傳節(jié)點(diǎn)指示信息確定發(fā)送給該第一工作節(jié)點(diǎn)的數(shù)據(jù)塊的標(biāo)識(shí)分別為1、3、5、8、9和13。該六個(gè)數(shù)據(jù)塊中,標(biāo)識(shí)為1、8和9的三個(gè)數(shù)據(jù)塊的處理狀態(tài)為已處理,標(biāo)識(shí)為3、5和13的三個(gè)數(shù)據(jù)塊的處理狀態(tài)為未處理,則根據(jù)處理狀態(tài)為未處理的三個(gè)數(shù)據(jù)塊生成對(duì)應(yīng)于該三個(gè)數(shù)據(jù)塊的Map任務(wù),并將標(biāo)識(shí)為3、5和13的三個(gè)數(shù)據(jù)塊的處理狀態(tài)更改為已處理。以下再結(jié)合圖4對(duì)通過(guò)真值表的方式來(lái)記錄數(shù)據(jù)塊的處理狀態(tài)的實(shí)現(xiàn)過(guò)程做詳細(xì)說(shuō)明。圖4為本發(fā)明實(shí)施例二提供的任務(wù)請(qǐng)求和分配示意圖。如圖4所示,假設(shè)第一工作節(jié)點(diǎn)上存儲(chǔ)有標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊,第二工作節(jié)點(diǎn)上存儲(chǔ)有標(biāo)識(shí)為3、4和9的數(shù)據(jù)塊,第三工作節(jié)點(diǎn)上存儲(chǔ)有標(biāo)識(shí)為2、6和7的數(shù)據(jù)塊,主節(jié)點(diǎn)可以根據(jù)上傳節(jié)點(diǎn)指示信息獲知上述數(shù)據(jù)塊的分布情況。真值表中記錄了所有數(shù)據(jù)塊的處理狀態(tài),初始時(shí),所有數(shù)據(jù)塊的處理狀態(tài)標(biāo)記為“假”,即所有數(shù)據(jù)塊均未處理。第一工作節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求,主節(jié)點(diǎn)生成針對(duì)于標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊的Map任務(wù),將真值表中標(biāo)識(shí)為1、5和8的數(shù)據(jù)塊的處理狀態(tài)標(biāo)記為“真”,將該Map任務(wù)分配給第一工作節(jié)點(diǎn)。通過(guò)對(duì)數(shù)據(jù)塊處理狀態(tài)的查詢,當(dāng)工作節(jié)點(diǎn)上存在多個(gè)數(shù)據(jù)塊時(shí),主節(jié)點(diǎn)可以針對(duì)該工作節(jié)點(diǎn)上對(duì)數(shù)據(jù)塊的處理情況來(lái)生成Map任務(wù),使工作節(jié)點(diǎn)可以對(duì)數(shù)據(jù)塊進(jìn)行批次處理。而且,當(dāng)每個(gè)數(shù)據(jù)塊存在多個(gè)備份時(shí),通過(guò)處理狀態(tài)的標(biāo)識(shí),可以避免對(duì)數(shù)據(jù)塊的重復(fù)處理,大大提高了處理效果。進(jìn)一步地,在本實(shí)施例中,步驟101中的所述主節(jié)點(diǎn)獲取所述工作節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài),具體可以包括如下步驟:所述主節(jié)點(diǎn)對(duì)數(shù)據(jù)塊處理狀態(tài)記錄表進(jìn)行查詢,獲取所述工作節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài),其中,所述數(shù)據(jù)塊處理狀態(tài)記錄表用以記錄各所述數(shù)據(jù)塊的處理狀態(tài);主節(jié)點(diǎn)可以根據(jù)客戶端發(fā)送的文件信息生成該數(shù)據(jù)塊處理狀態(tài)記錄表,該數(shù)據(jù)塊處理狀態(tài)記錄表中記錄的各數(shù)據(jù)塊的初始處理狀態(tài)均為未處理。該數(shù)據(jù)塊存處理狀態(tài)記錄表可以存儲(chǔ)在主節(jié)點(diǎn)中,通過(guò)數(shù)據(jù)塊存處理狀態(tài)記錄表的設(shè)置,可以對(duì)數(shù)據(jù)塊的處理狀態(tài)進(jìn)行管理。相應(yīng)地,步驟102中的所述主節(jié)點(diǎn)將所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài)更改為已處理,具體可以包括如下步驟:所述主節(jié)點(diǎn)將所述數(shù)據(jù)塊處理狀態(tài)記錄表中的所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài)更改為已處理。在本實(shí)施例中,進(jìn)一步地,步驟30中的所述客戶端根據(jù)所述文件劃分指示信息將待處理文件劃分為多個(gè)所述數(shù)據(jù)塊,具體可以包括如下步驟:所述客戶端根據(jù)所述文件劃分指示信息將所述待處理文件劃分為多個(gè)所述數(shù)據(jù)塊,相鄰的兩個(gè)數(shù)據(jù)塊具有重疊區(qū)域,在第一個(gè)數(shù)據(jù)塊的起始位置添加首數(shù)據(jù)塊標(biāo)識(shí),其中,所述待處理文件包括多條數(shù)據(jù)記錄,所述重疊區(qū)域的容量大于所述數(shù)據(jù)記錄的容量;具體地,待處理文件包括多條數(shù)據(jù)記錄,該多條數(shù)據(jù)記錄的容量可以相同也可以不同。則若根據(jù)預(yù)設(shè)數(shù)據(jù)塊容量將該待處理文件劃分為多個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊首尾的數(shù)據(jù)記錄可能為不完整的。數(shù)據(jù)塊中包含有多條數(shù)據(jù)記錄,具體地,每條數(shù)據(jù)記錄具體可以包括結(jié)束指示位,以指示該條數(shù)據(jù)記錄結(jié)束。為了避免對(duì)數(shù)據(jù)塊處理時(shí),由于數(shù)據(jù)塊首尾存在不完整的數(shù)據(jù)記錄,而對(duì)該不完整的數(shù)據(jù)記錄丟棄造成的文件內(nèi)容的丟失,可以在對(duì)待處理文件進(jìn)行劃分時(shí),劃分生成的各數(shù)據(jù)塊中,相鄰的兩個(gè)數(shù)據(jù)塊具有重疊區(qū)域J,即相鄰的兩個(gè)數(shù)據(jù)塊中前一個(gè)數(shù)據(jù)塊的尾部預(yù)設(shè)容量的數(shù)據(jù)內(nèi)容與后一個(gè)數(shù)據(jù)塊首部預(yù)設(shè)容量的數(shù)據(jù)內(nèi)容相同,以形成該重疊區(qū)域J,如圖5所示。重疊區(qū)域J的容量大于數(shù)據(jù)記錄的容量,當(dāng)待處理文件中的數(shù)據(jù)記錄的容量不同時(shí),重疊區(qū)域J的容量可以大于容量最大的數(shù)據(jù)記錄,也可以根據(jù)各數(shù)據(jù)記錄的容量大小來(lái)設(shè)置重疊區(qū)域J,如重疊區(qū)域J的容量大于各數(shù)據(jù)記錄容量的均值,以避免重疊區(qū)域J容量過(guò)小而無(wú)法包括大多數(shù)的數(shù)據(jù)記錄,或重疊區(qū)域J容量過(guò)大而造成的浪費(fèi)。在第一個(gè)數(shù)據(jù)塊的起始位置添加首數(shù)據(jù)塊標(biāo)識(shí),以指示該數(shù)據(jù)塊為該待處理文件對(duì)應(yīng)的首個(gè)數(shù)據(jù)塊。相應(yīng)地,步驟20中的所述工作節(jié)點(diǎn)對(duì)所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理,具體可以包括如下步驟:若所述數(shù)據(jù)塊尾部的數(shù)據(jù)記錄為不完整的,則所述工作節(jié)點(diǎn)將所述不完整的數(shù)據(jù)記錄刪除,若所述數(shù)據(jù)塊的起始位置不具有所述首數(shù)據(jù)塊標(biāo)識(shí),則將所述數(shù)據(jù)塊首部的重疊區(qū)域中包含的結(jié)束指示位對(duì)應(yīng)的數(shù)據(jù)記錄刪除,將所述數(shù)據(jù)塊中的剩余的數(shù)據(jù)記錄進(jìn)行相應(yīng)地處理,其中,所述結(jié)束指示位用以指示所述數(shù)據(jù)記錄結(jié)束。工作節(jié)點(diǎn)根據(jù)分配到的Map任務(wù)對(duì)相應(yīng)的數(shù)據(jù)塊進(jìn)行處理時(shí),首先對(duì)數(shù)據(jù)塊中包含的數(shù)據(jù)記錄的情況進(jìn)行檢測(cè),若該數(shù)據(jù)塊的尾部的數(shù)據(jù)記錄為不完整的,則將該不完整的數(shù)據(jù)記錄刪除。具體可以通過(guò)對(duì)數(shù)據(jù)記錄中的結(jié)束指示位的檢測(cè)來(lái)獲知該數(shù)據(jù)記錄的完整性,若數(shù)據(jù)塊尾部的數(shù)據(jù)記錄中不存在該結(jié)束指示位,則說(shuō)明該數(shù)據(jù)記錄是不完整的。對(duì)于第一個(gè)數(shù)據(jù)塊,該第一個(gè)數(shù)據(jù)塊的首部的數(shù)據(jù)記錄一定是完整的,則只判斷該第一個(gè)數(shù)據(jù)塊的尾部的數(shù)據(jù)記錄的完整性。對(duì)于其他的數(shù)據(jù)塊,出了對(duì)其尾部的數(shù)據(jù)記錄的完整性進(jìn)行判斷外,還需要對(duì)數(shù)據(jù)塊首部的重疊區(qū)域中包含的結(jié)束指示位進(jìn)行檢測(cè),并刪除檢測(cè)到的結(jié)束指示位對(duì)應(yīng)的數(shù)據(jù)記錄。以下結(jié)合圖6對(duì)本實(shí)施例提供的數(shù)據(jù)塊的處理過(guò)程做詳細(xì)說(shuō)明。圖6示出兩個(gè)連續(xù)的數(shù)據(jù)塊,分別為數(shù)據(jù)塊A和數(shù)據(jù)塊B,數(shù)據(jù)塊A和數(shù)據(jù)塊B具有重合區(qū)域J,數(shù)據(jù)塊A的起始位置具有首數(shù)據(jù)塊標(biāo)識(shí)。數(shù)據(jù)塊A和數(shù)據(jù)塊B分別發(fā)送給第一工作節(jié)點(diǎn)和第二工作節(jié)點(diǎn)。第一工作節(jié)點(diǎn)對(duì)數(shù)據(jù)塊A進(jìn)行處理時(shí),檢測(cè)到數(shù)據(jù)塊A的起始位置具有首數(shù)據(jù)塊標(biāo)識(shí),則確定該數(shù)據(jù)塊A為第一個(gè)數(shù)據(jù)塊。數(shù)據(jù)塊A尾部的數(shù)據(jù)記錄L中不具有結(jié)束指示位,則該數(shù)據(jù)記錄L為不完整的數(shù)據(jù)記錄,將該數(shù)據(jù)記錄L刪除。第一工作節(jié)點(diǎn)對(duì)數(shù)據(jù)塊A中剩余的數(shù)據(jù)記錄進(jìn)行相應(yīng)地處理。第二工作節(jié)點(diǎn)對(duì)數(shù)據(jù)塊B進(jìn)行處理時(shí),檢測(cè)到數(shù)據(jù)塊B的起始位置不具有首數(shù)據(jù)塊標(biāo)識(shí),則確定該數(shù)據(jù)塊B不是第一個(gè)數(shù)據(jù)塊。將該數(shù)據(jù)塊B首部的重疊區(qū)域J中包含的結(jié)束指示位進(jìn)行檢測(cè),獲知該重疊區(qū)域J中包含有兩個(gè)結(jié)束指示位,則將該兩個(gè)結(jié)束指示位分別對(duì)應(yīng)的數(shù)據(jù)記錄M和數(shù)據(jù)記錄N刪除,第二工作節(jié)點(diǎn)對(duì)數(shù)據(jù)塊B中剩余的數(shù)據(jù)記錄進(jìn)行相應(yīng)地處理。由于數(shù)據(jù)塊A和數(shù)據(jù)塊B具有重合區(qū)域J,數(shù)據(jù)塊A中刪除的不完整的數(shù)據(jù)記錄L保留在數(shù)據(jù)塊B的剩余的數(shù)據(jù)記錄中,數(shù)據(jù)塊B中刪除的數(shù)據(jù)記錄M和數(shù)據(jù)記錄N刪除保留在數(shù)據(jù)塊A中的剩余的數(shù)據(jù)記錄中。通過(guò)重疊區(qū)域J的設(shè)置,保證了處理的數(shù)據(jù)的完整性。實(shí)施例三圖7為本發(fā)明實(shí)施例三提供的分布式數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。如圖7所示,本實(shí)施例提供的分布式數(shù)據(jù)處理裝置具體可以實(shí)現(xiàn)本發(fā)明任意實(shí)施例提供的分布式數(shù)據(jù)處理方法的各個(gè)步驟,此不再贅述。本實(shí)施例提供的分布式數(shù)據(jù)處理裝置具體包括任務(wù)生成單元11和任務(wù)分配單元12。任務(wù)生成單元11用于根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成映射Map任務(wù),其中,所述上傳節(jié)點(diǎn)指示信息包括多個(gè)數(shù)據(jù)塊分別對(duì)應(yīng)的工作節(jié)點(diǎn)的地址,所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊分布在發(fā)送所述任務(wù)獲取請(qǐng)求的工作節(jié)點(diǎn)上。任務(wù)分配單元12用于將所述Map任務(wù)分配給所述工作節(jié)點(diǎn),以使所述工作節(jié)點(diǎn)對(duì)所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。本實(shí)施例提供的分布式數(shù)據(jù)處理裝置,任務(wù)生成單元11根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求生成Map任務(wù),任務(wù)分配單元12將Map任務(wù)分配給工作節(jié)點(diǎn),以使工作節(jié)點(diǎn)對(duì)Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。由于Map任務(wù)是分布式數(shù)據(jù)處理裝置在工作節(jié)點(diǎn)發(fā)送任務(wù)獲取請(qǐng)求時(shí)根據(jù)上傳節(jié)點(diǎn)指示信息生成的,該Map任務(wù)對(duì)應(yīng)于該工作節(jié)點(diǎn)上的數(shù)據(jù)塊,因此,工作節(jié)點(diǎn)根據(jù)該Map任務(wù)對(duì)數(shù)據(jù)塊進(jìn)行處理時(shí),無(wú)需從其他工作節(jié)點(diǎn)進(jìn)行數(shù)據(jù)塊的遷移,避免了分布式數(shù)據(jù)處理過(guò)程中各工作節(jié)點(diǎn)間的數(shù)據(jù)遷移造成的網(wǎng)絡(luò)流量大的問(wèn)題,也避免了磁盤讀寫所占用的系統(tǒng)資源,提高系統(tǒng)的分布式數(shù)據(jù)處理效果。實(shí)施例四圖8為本發(fā)明實(shí)施例四提供的分布式數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。如圖8所示,本實(shí)施例提供的分布式數(shù)據(jù)處理裝置在圖5所示的實(shí)施例的基礎(chǔ)上,具體還可以包括指示信息生成單元13,指示信息生成單元13用于根據(jù)客戶端發(fā)送所述文件信息,生成文件劃分指示信息和所述上傳節(jié)點(diǎn)指示信息,將所述文件劃分指示信息和所述上傳節(jié)點(diǎn)指示信息發(fā)送給所述客戶端,以使所述客戶端根據(jù)所述文件劃分指示信息將待處理文件劃分為多個(gè)所述數(shù)據(jù)塊,根據(jù)所述上傳節(jié)點(diǎn)指示信息將各所述數(shù)據(jù)塊分別發(fā)送給對(duì)應(yīng)的工作節(jié)點(diǎn)。進(jìn)一步地,在本實(shí)施例中,所述任務(wù)生成單元11具體可以包括處理狀態(tài)獲取子單元111和任務(wù)生成子單元112。處理狀態(tài)獲取子單元111用于當(dāng)接收到所述工作節(jié)點(diǎn)發(fā)送的任務(wù)獲取請(qǐng)求時(shí),根據(jù)所述上傳節(jié)點(diǎn)指示信息確定發(fā)送給所述工作節(jié)點(diǎn)的數(shù)據(jù)塊,獲取所述工作節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài)。任務(wù)生成子單元112用于根據(jù)所述處理狀態(tài)為未處理的數(shù)據(jù)塊生成所述Map任務(wù),將所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài)更改為已處理。通過(guò)對(duì)數(shù)據(jù)塊處理狀態(tài)的查詢,當(dāng)工作節(jié)點(diǎn)上存在多個(gè)數(shù)據(jù)塊時(shí),可以針對(duì)該工作節(jié)點(diǎn)上對(duì)數(shù)據(jù)塊的處理情況來(lái)生成Map任務(wù),使工作節(jié)點(diǎn)可以對(duì)數(shù)據(jù)塊進(jìn)行批次處理。而且,當(dāng)每個(gè)數(shù)據(jù)塊存在多個(gè)備份時(shí),通過(guò)處理狀態(tài)的標(biāo)識(shí),可以避免對(duì)數(shù)據(jù)塊的重復(fù)處理,大大提高了處理效果。在本實(shí)施例中,所述處理狀態(tài)獲取子單元111具體還可以用于對(duì)數(shù)據(jù)塊處理狀態(tài)記錄表進(jìn)行查詢,獲取所述工作節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài),其中,所述數(shù)據(jù)塊處理狀態(tài)記錄表用以記錄各所述數(shù)據(jù)塊的處理狀態(tài)。相應(yīng)地,所述任務(wù)生成子單元112具體還可以用于將所述數(shù)據(jù)塊處理狀態(tài)記錄表中的所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊的處理狀態(tài)更改為已處理。通過(guò)設(shè)置數(shù)據(jù)塊存處理狀態(tài)記錄表對(duì)數(shù)據(jù)塊的處理狀態(tài)進(jìn)行管理,進(jìn)一步提高了數(shù)據(jù)塊的處理效率。實(shí)施例五圖9為本發(fā)明實(shí)施例五提供的一種分布式數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)示意圖。如圖9所示,本實(shí)施例提供的分布式數(shù)據(jù)處理系統(tǒng),包括主節(jié)點(diǎn)81和至少兩個(gè)工作節(jié)點(diǎn)82(圖中示出三個(gè)工作節(jié)點(diǎn)),所述主節(jié)點(diǎn)81為本發(fā)明任意實(shí)施例提供的分布式數(shù)據(jù)處理裝置。所述工作節(jié)點(diǎn)82用于向所述主節(jié)點(diǎn)81發(fā)送任務(wù)獲取請(qǐng)求,以及接收所述主節(jié)點(diǎn)81分配的映射Map任務(wù),對(duì)所述Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。具體的,上述節(jié)點(diǎn)(包括主節(jié)點(diǎn)、工作節(jié)點(diǎn))可以是服務(wù)器、客戶機(jī)或者其他網(wǎng)絡(luò)設(shè)備。本實(shí)施例提供的分布式數(shù)據(jù)處理系統(tǒng),由于主節(jié)點(diǎn)81為本發(fā)明任意實(shí)施例提供的分布式數(shù)據(jù)處理裝置,主節(jié)點(diǎn)81根據(jù)獲取到的上傳節(jié)點(diǎn)指示信息和工作節(jié)點(diǎn)82發(fā)送的任務(wù)獲取請(qǐng)求生成Map任務(wù),將Map任務(wù)分配給工作節(jié)點(diǎn)82,以使工作節(jié)點(diǎn)82對(duì)Map任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊進(jìn)行相應(yīng)地處理。由于Map任務(wù)是主節(jié)點(diǎn)81在工作節(jié)點(diǎn)82發(fā)送任務(wù)獲取請(qǐng)求時(shí)根據(jù)上傳節(jié)點(diǎn)指示信息生成的,該Map任務(wù)對(duì)應(yīng)于該工作節(jié)點(diǎn)82上的數(shù)據(jù)塊,因此,工作節(jié)點(diǎn)82根據(jù)該Map任務(wù)對(duì)數(shù)據(jù)塊進(jìn)行處理時(shí),無(wú)需從其他工作節(jié)點(diǎn)82進(jìn)行數(shù)據(jù)塊的遷移,避免了分布式數(shù)據(jù)處理過(guò)程中各工作節(jié)點(diǎn)82間的數(shù)據(jù)遷移造成的網(wǎng)絡(luò)流量大的問(wèn)題,也避免了磁盤讀寫所占用的系統(tǒng)資源,提高系統(tǒng)的分布式數(shù)據(jù)處理效果。圖10為本發(fā)明實(shí)施例五提供的另一種分布式數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)示意圖。如圖10所示,在本實(shí)施例中,該分布式數(shù)據(jù)處理系統(tǒng)還可以包括客戶端83,所述客戶83端用于向所述主節(jié)點(diǎn)81發(fā)送文件信息,以及接收所述主節(jié)點(diǎn)81發(fā)送的文件劃分指示信息和上傳節(jié)點(diǎn)指示信息,根據(jù)所述文件劃分指示信息將待處理文件劃分為多個(gè)數(shù)據(jù)塊,根據(jù)所述上傳節(jié)點(diǎn)指示信息將各所述數(shù)據(jù)塊分別發(fā)送給對(duì)應(yīng)的工作節(jié)點(diǎn)82。具體的,上述客戶端可以是客戶機(jī)(例如智能手機(jī)、臺(tái)式電腦、筆記本、平板手機(jī)、掌上電腦等等)。進(jìn)一步地,在本實(shí)施例中,所述客戶端83還用于根據(jù)所述文件劃分指示信息將所述待處理文件劃分為多個(gè)所述數(shù)據(jù)塊,相鄰的兩個(gè)數(shù)據(jù)塊具有重疊區(qū)域,在第一個(gè)數(shù)據(jù)塊的起始位置添加首數(shù)據(jù)塊標(biāo)識(shí),其中,所述待處理文件包括多條數(shù)據(jù)記錄,所述重疊區(qū)域的容量大于所述數(shù)據(jù)記錄的容量。相應(yīng)地,所述工作節(jié)點(diǎn)82還用于若所述數(shù)據(jù)塊尾部的數(shù)據(jù)記錄為不完整的,則將所述不完整的數(shù)據(jù)記錄刪除,若所述數(shù)據(jù)塊的起始位置不具有所述首數(shù)據(jù)塊標(biāo)識(shí),則將所述數(shù)據(jù)塊首部的重疊區(qū)域中包含的結(jié)束指示位對(duì)應(yīng)的數(shù)據(jù)記錄刪除,將所述數(shù)據(jù)塊中的剩余的數(shù)據(jù)記錄進(jìn)行相應(yīng)地處理,其中,所述結(jié)束指示位用以指示所述數(shù)據(jù)記錄結(jié)束。通過(guò)重疊區(qū)域的設(shè)置,避免了在對(duì)數(shù)據(jù)塊進(jìn)行處理時(shí),對(duì)數(shù)據(jù)塊中不完整的數(shù)據(jù)記錄丟棄造成的文件內(nèi)容的丟失,保證了處理的數(shù)據(jù)的完整性。本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。