一種處理串行任務的數(shù)據(jù)處理裝置及方法
【專利摘要】本發(fā)明實施例公開了一種處理串行任務的數(shù)據(jù)處理裝置及方法,能夠在數(shù)據(jù)處理的過程中減少從分布式系統(tǒng)中的各個節(jié)點設備的磁盤上讀取輸出結(jié)果的次數(shù),從而減少處理大量數(shù)據(jù)所需的時間以及所占用的網(wǎng)絡資源。本發(fā)明的方法包括:獲取至少兩個MapReduce任務,至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;其中,當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值;合并至少兩個MapReduce任務得到目標MapReduce任務;執(zhí)行目標MapReduce任務,并得到目標MapReduce任務的輸出結(jié)果。
【專利說明】一種處理串行任務的數(shù)據(jù)處理裝置及方法
【技術領域】
[0001]本發(fā)明涉及電子信息【技術領域】,尤其涉及一種處理串行任務的數(shù)據(jù)處理裝置及方法。
【背景技術】
[0002]目前,由于數(shù)據(jù)規(guī)模越來越大,為了有效處理大規(guī)模數(shù)據(jù),已經(jīng)發(fā)展出了很多適用于大數(shù)據(jù)處理的技術。其中,MapReduce是一種常用的用于處理大規(guī)模數(shù)據(jù)的技術。在應用了 MapReduce的編程模型中,需要使用Map (映射)函數(shù)和Reduce (規(guī)約)函數(shù)。其中,map函數(shù):接受一個鍵值對(key-value pair),產(chǎn)生一組中間鍵值對,并將map函數(shù)產(chǎn)生的中間鍵值對里鍵相同的值傳遞給一個reduce函數(shù)。reduce函數(shù):接受一個鍵,以及相關的一組值,將這組值進行合并產(chǎn)生一組規(guī)模更小的值(通常只有一個或零個值)。
[0003]在實際應用中,一個MapReduce任務可以由一個基于Map (映射)函數(shù)的Map任務和一個基于Reduce (規(guī)約)函數(shù)的Reduce任務組成,例如:在HDFS (Hadoop DistributedFile System,Hadoop分布式文件系統(tǒng))技術中,經(jīng)常需要執(zhí)行串行的多個MapReduce任務,對于每一個MapReduce任務,需要先執(zhí)行Map任務,并將輸出結(jié)果存儲到分布式系統(tǒng)中的各個節(jié)點設備的磁盤上。之后再通過采用HTTP協(xié)議從分布式系統(tǒng)中的各個節(jié)點設備上遠程拷貝每一個Map任務執(zhí)行完畢后的輸出結(jié)果,再對該輸出結(jié)果進行執(zhí)行Reduce任務。并重復這個過程,直至將所有的MapReduce流程依次執(zhí)行完畢。
[0004]由此可見,執(zhí)行一個MapReduce任務需要從分布式系統(tǒng)的節(jié)點設備的磁盤上讀取至少一次輸出結(jié)果。如果執(zhí)行多個串行MapReduce任務過程中,就需要占用很多時間和網(wǎng)絡帶寬分多次從分布式系統(tǒng)中的各個節(jié)點設備的磁盤上讀取輸出結(jié)果,從而增加處理大量數(shù)據(jù)所需的時間以及網(wǎng)絡資源。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的實施例提供一種處理串行任務的數(shù)據(jù)處理裝置及方法,能夠在數(shù)據(jù)處理的過程中減少從分布式系統(tǒng)中的各個節(jié)點設備的磁盤上讀取輸出結(jié)果的次數(shù),從而減少處理大量數(shù)據(jù)所需的時間以及所占用的網(wǎng)絡資源。
[0006]為達到上述目的,本發(fā)明的實施例采用如下技術方案:
[0007]第一方面,本發(fā)明的實施例提供處理串行任務的數(shù)據(jù)處理裝置,其特征在于,包括:
[0008]任務提取模塊,用于獲取至少兩個MapReduce任務,所述至少兩個MapReduce任務按照執(zhí)行先后順序串行排列所述至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;其中,當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值;
[0009]合并模塊,用于合并所述至少兩個MapReduce任務得到目標MapReduce任務;
[0010]執(zhí)行模塊,用于執(zhí)行目標MapReduce任務,并得到所述目標MapReduce任務的輸出結(jié)果。
[0011]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述合并模塊包括:
[0012]分析單元,用于從所述至少兩個MapReduce任務中,提取每一個MapReduce任務對應的Map任務;
[0013]合并單元,用于合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼,其中,當所述至少兩個MapReduce任務存在信息依賴關系時,所述至少兩個MapReduce任務按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務對應的Map任務的代碼的輸出值作為與所述前一個MapReduce任務相鄰的后一個MapReduce任務對應的Map任務的代碼的輸入值;
[0014]目標任務生成單元,用于利用所述合并后的Map任務的代碼,得到所述目標MapReduce 任務。
[0015]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述執(zhí)行模塊包括:
[0016]執(zhí)行單元,用于執(zhí)行所述合并后的Map任務;
[0017]發(fā)送單元,用于將所述合并后的Map任務的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務的設備;
[0018]接收單元,用于接收所述用于執(zhí)行Reduce任務的設備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務的設備根據(jù)所述合并后的Map任務的執(zhí)行結(jié)果得到。
[0019]結(jié)合第一方面的第一或二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述合并單元,具體用于:
[0020]獲取每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼;
[0021]先編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼;再編譯所獲取的每一個MapReduce任務對應的Map任務的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境清理操作代碼;最后得到所述合并后的Map任務的代碼。
[0022]第二方面,本發(fā)明的實施例提供一種處理串行任務的數(shù)據(jù)處理方法,其特征在于,包括:
[0023]獲取至少兩個MapReduce任務,所述至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;其中,當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值;
[0024]合并所述至少兩個MapReduce任務得到目標MapReduce任務;
[0025]執(zhí)行目標MapReduce任務,并得到所述目標MapReduce任務的輸出結(jié)果。
[0026]結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述合并所述至少兩個MapReduce任務得到目標MapReduce任務,具體包括:
[0027]從所述至少兩個MapReduce任務中,提取每一個MapReduce任務對應的Map任務;
[0028]合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼,其中,當所述至少兩個MapReduce任務存在信息依賴關系時,所述至少兩個MapReduce任務按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務對應的Map任務的代碼的輸出值作為與所述前一個MapReduce任務相鄰的后一個MapReduce任務對應的Map任務的代碼的輸入值;
[0029]利用所述合并后的Map任務的代碼,得到所述目標MapReduce任務。
[0030]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述執(zhí)行目標MapReduce任務,得到所述目標MapReduce任務的輸出結(jié)果,包括:
[0031]執(zhí)行所述合并后的Map任務,并將所述合并后的Map任務的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務的設備;
[0032]接收所述用于執(zhí)行Reduce任務的設備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務的設備根據(jù)所述合并后的Map任務的執(zhí)行結(jié)果得到。
[0033]結(jié)合第二方面的第一或二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,其特征在于,所述合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼,具體包括:
[0034]獲取每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼;
[0035]先編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼;再編譯所獲取的每一個MapReduce任務對應的Map任務的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境清理操作代碼;最后得到所述合并后的Map任務的代碼。
[0036]第三方面,本發(fā)明的實施例提供一種處理串行任務的計算設備,其特征在于,所述計算設備至少包括:處理器和通信接口,所述處理器和通信接口通過所述計算設備的總線相連接,所述通信接口用于所述計算設備與外部存儲設備進行數(shù)據(jù)傳輸;
[0037]所述處理器,用于獲取至少兩個MapReduce任務,并合并所述至少兩個MapReduce任務得到目標MapReduce任務,所述至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;其中,當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值;
[0038]所述處理器,還用于執(zhí)行目標MapReduce任務,并得到所述目標MapReduce任務的輸出結(jié)果,并將所述輸出結(jié)果發(fā)送至所述通信接口 ;
[0039]所述通信接口,用于向所述外部存儲設備發(fā)送所述輸出結(jié)果。
[0040]結(jié)合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,所述處理器,具體用于從所述至少兩個MapReduce任務中,提取每一個MapReduce任務對應的Map任務;并根據(jù)所述至少兩個MapReduce任務相互之間的信息依賴關系,合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼,其中,當所述至少兩個MapReduce任務存在信息依賴關系時,所述至少兩個MapReduce任務按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務對應的Map任務的代碼的輸出值作為與所述前一個MapReduce任務相鄰的后一個MapReduce任務對應的Map任務的代碼的輸入值;并利用所述合并后的Map任務的代碼,得到所述目標MapReduce任務。
[0041]結(jié)合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述處理器,具體用于執(zhí)行所述合并后的Map任務,并將所述合并后的Map任務的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務的設備;[0042]接收所述用于執(zhí)行Reduce任務的設備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務的設備根據(jù)所述合并后的Map任務的執(zhí)行結(jié)果得到。
[0043]結(jié)合第三方面的第一或二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述處理器,具體用于獲取每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼;并先編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼;再編譯所獲取的每一個MapReduce任務對應的Map任務的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境清理操作代碼;最后得到所述合并后的Map任務的代碼。
[0044]本發(fā)明實施例提供的處理串行任務的計算設備、數(shù)據(jù)處理裝置及方法,能夠合并多個串行MapReduce任務,并執(zhí)行合并得到的MapReduce任務。在合并得到的MapReduce任務中,只需執(zhí)行一次Reduce任務。因此本發(fā)明通過合并執(zhí)行MapReduce任務減少了執(zhí)行串行MapReduce任務時所需Reduce任務的次數(shù),因此節(jié)省了執(zhí)行Reduce任務過程中從分布式系統(tǒng)中的各個節(jié)點設備的磁盤上讀取輸出結(jié)果所需占用的時間和網(wǎng)絡帶寬,從而減少處理大量數(shù)據(jù)所需的時間以及網(wǎng)絡資源?!緦@綀D】
【附圖說明】
[0045]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0046]圖1為本發(fā)明實施例提供的一種處理串行任務的數(shù)據(jù)處理方法的流程圖;
[0047]圖la、圖1b為本發(fā)明實施例提供的具體實例的邏輯示意圖;
[0048]圖2為本發(fā)明實施例提供的另一種處理串行任務的數(shù)據(jù)處理方法的流程圖;
[0049]圖3為本發(fā)明實施例提供的再一種處理串行任務的數(shù)據(jù)處理方法的流程圖;
[0050]圖4為本發(fā)明實施例提供的一種具體實例的示意圖;
[0051]圖5為本發(fā)明實施例提供的一種處理串行任務的計算設備的結(jié)構(gòu)示意圖;
[0052]圖6為本發(fā)明實施例提供的一種處理串行任務的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0053]圖7為本發(fā)明實施例提供的另一種處理串行任務的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0054]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0055]在本發(fā)明實施例中使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實施例和所附權利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯(lián)的列出項目的任何或所有可能組合。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”或“響應于檢測”。類似地,取決于語境,短語“如果確定”或“如果檢測(陳述的條件或事件)”可以被解釋成為“當確定時”或“響應于確定”或“當檢測(陳述的條件或事件)時”或“響應于檢測(陳述的條件或事件)”。
[0056]需要說明的是,本發(fā)明實施例提供的實施例可以由任何一種具有數(shù)據(jù)處理和傳輸功能的計算設備執(zhí)行。比如:服務器、計算機或終端設備等。具體的,本實施例的實施過程可以利用現(xiàn)有的實現(xiàn)MapReduce技術的硬件環(huán)境,并可以將經(jīng)過本實施例的方法處理后的數(shù)據(jù)存儲在分布式系統(tǒng)上。
[0057]本發(fā)明實施例提供一種處理串行任務的數(shù)據(jù)處理方法,如圖1所示,包括:
[0058]101,計算 設備獲取至少兩個MapReduce任務。
[0059]其中,至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值。當計算設備開始運行M/R (MapReduce框架)并開始處理MapReduce任務時,獲取至少兩個按照執(zhí)行先后順序串行排列MapReduce任務,例如:計算設備獲取的是一連串用于實現(xiàn)計算過程的MapReduce任務,其中前一個MapReduce任務的處理結(jié)果可以是之后一個或多個的MapReduce任務的輸入值。
[0060]102,合并所述至少兩個MapReduce任務得到目標MapReduce任務。
[0061]在本實施例中,合并所述至少兩個MapReduce任務的過程可以理解為將至少兩個MapReduce任務各自的Map任務進行合并,例如:
[0062]如圖1a所示,其中“第一映射任務”表示Mapl任務,“第二映射任務”表示Map2任務,…,“第五映射任務”表示Map5任務?!盎喨蝿铡北硎綬educe任務。
MapReduce l_MapReduce2-----MapReduce N為串行的任務,N為大于等于3的整數(shù)。
MapReduce I任務包括執(zhí)行Map I任務后輸出結(jié)果Output I。MapReduce2任務包括執(zhí)行Map2任務后輸出結(jié)果0utput2,并且需要將Outputl作為執(zhí)行Map2過程的輸入?yún)?shù)?!apReduce N任務包括執(zhí)行Map N任務后輸出結(jié)果Output N,并且需要將Output N-1作為執(zhí)行Map N過程的輸入?yún)?shù)。則計算設備將Mapl任務、Map2任務、…Map N任務進行合并。并生成一個新的Map任務,稱之為目標Map任務,執(zhí)行目標Map任務的后的輸出結(jié)果即為Output No執(zhí)行目標Map任務并輸出了 Output N后,再將Output N發(fā)送至用于執(zhí)行Reduce任務的設備,這樣就實現(xiàn)了計算設備將MapReduce1、MapReduce2、…、MapReduce N進行合并得到目標MapReduce任務,而目標MapReduce任務即為目標Map任務+Reduce任務的組合。比如:
[0063]MapReducel_MapReduce2 - MapReduce3 - MapReduce4 - MapReduce5 為用于實現(xiàn)累加計算的串行任務。其中原始數(shù)值為10, MapReducel任務為用于在原始數(shù)值上加I的任務,MapReducel任務的Mapl任務用于實現(xiàn)“+I”。MapReduce2任務為用于在原始數(shù)值上加2的任務,MapReduce2任務的Map2任務用于實現(xiàn)“+2”。MapReduce3任務為用于在原始數(shù)值上加-1的任務,MapReduce3任務的Map3任務用于實現(xiàn)“_1”。MapReduce4任務為用于在原始數(shù)值上加O的任務,MapReduce4任務的Map4任務用于實現(xiàn)“+O”。MapReduce5任務為用于在原始數(shù)值上加I的任務,MapReduce5任務的Map5任務用于實現(xiàn)“+I”。
[0064]若按照現(xiàn)有技術中的方案,則對于MapReducel_MapReduce2 - MapReduce3 -MapReduce4 - MapReduce5的串行任務的執(zhí)行過程如圖1b所示,其中,“任務一 ”表示MapReducel、“任務二”表不MapReduce2、…、“任務五”表不MapReduce5 ;“第一映射任務”表示Mapl任務,“第二映射任務”表示Map2任務,…,“第五映射任務”表示Map5任務?!盎喨蝿铡北硎綬educe任務。
[0065]現(xiàn)有技術中的執(zhí)行過程包括:
[0066]執(zhí)行MapReducel,讀取原始數(shù)值得到輸入值10,執(zhí)行Mapl任務得到輸出結(jié)果11,并將輸出結(jié)果11發(fā)送至用于執(zhí)行Reduce任務的設備,以便對輸出結(jié)果11執(zhí)行Reduce任務。
[0067]執(zhí)行MapReduce2,從分布式系統(tǒng)上讀取SI的輸出結(jié)果11作為輸入值,執(zhí)行Map2任務得到輸出結(jié)果13,并將輸出結(jié)果13發(fā)送至用于執(zhí)行Reduce任務的設備,以便對輸出結(jié)果11執(zhí)行Reduce任務。[0068]執(zhí)行MapReduce3,從分布式系統(tǒng)上讀取S2的輸出結(jié)果13,執(zhí)行Map3任務得到輸出結(jié)果12,并將輸出結(jié)果12發(fā)送至用于執(zhí)行Reduce任務的設備,以便對輸出結(jié)果11執(zhí)行Reduce 任務。
[0069]執(zhí)行MapReduce4,從分布式系統(tǒng)上讀取S3的輸出結(jié)果12,執(zhí)行Map4任務得到輸出結(jié)果12,并將輸出結(jié)果12發(fā)送至用于執(zhí)行Reduce任務的設備,以便對輸出結(jié)果11執(zhí)行Reduce 任務。
[0070]執(zhí)行MapReduce5,從分布式系統(tǒng)上讀取S4的輸出結(jié)果12,執(zhí)行Map5任務得到輸出結(jié)果13,并將輸出結(jié)果15發(fā)送至用于執(zhí)行Reduce任務的設備,以便對輸出結(jié)果11執(zhí)行Reduce 任務。
[0071]而在本實施例中,計算設備確定了需要合并的串行排列的MapReduce任務后,可以將所有的MapReduce任務合并為一個MapReduce任務,比如:合并MapReducel任務、MapReduce2 任務、MapReduce3 任務、MapReduce4 任務和 MapReduce5 任務后,得到第一目標MapReduce任務。第一目標MapReduce任務的Map任務為Map M。其中由Mapl至5直接在計算設備的內(nèi)存中順序執(zhí)行“+1+2-1+0+1”,得到Map M任務為“+3”。則執(zhí)行第一目標MapReduce 任務的輸出結(jié)果 Output M=10+3=13。
[0072]或者,計算設備確定了需要合并的串行排列的MapReduce任務后,也可以將所有的MapReduce任務當中的一部分合并為一個MapReduce任務,比如:合并MapReducel任務、MapReduce2 任務、MapReduce3 任務、MapReduce4 任務得到第二目標 MapReduce 任務,第二目標MapReduce任務的Map任務為Map M,。其中由Mapl至4進行直接在計算設備的內(nèi)存中順序執(zhí)行“+1+2-1+0”,得到Map M任務為“+2”。
[0073]103,執(zhí)行目標MapReduce任務,并得到所述目標MapReduce任務的輸出結(jié)果。
[0074]本發(fā)明實施例提供的處理串行任務的數(shù)據(jù)處理方法,能夠合并多個串行MapReduce任務,并執(zhí)行合并得到的MapReduce任務。在合并得到的MapReduce任務中,只需執(zhí)行一次Reduce任務。因此本發(fā)明通過合并執(zhí)行MapReduce任務減少了執(zhí)行串行MapReduce任務時所需Reduce任務的次數(shù),因此節(jié)省了執(zhí)行Reduce任務過程中從分布式系統(tǒng)中的各個節(jié)點設備的磁盤上讀取輸出結(jié)果所需占用的時間和網(wǎng)絡帶寬,從而減少處理大量數(shù)據(jù)所需的時間以及網(wǎng)絡資源。
[0075]具體的,本發(fā)明實施例可以包括如圖2所示的方法:
[0076]201,計算設備獲取至少兩個MapReduce任務。[0077]其中,至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值。當計算設備開始運行M/R(MapReduce框架)并開始處理MapReduce任務時,對于待處理的MapReduce任務,從中獲取至少兩個按照執(zhí)行先后順序串行排列MapReduce任務,例如:計算設備獲取的是一連串用于實現(xiàn)計算過程的MapReduce任務,其中前一個MapReduce任務的處理結(jié)果可以是之后一個或多個的MapReduce任務的輸入值。
[0078]202,從所述至少兩個MapReduce任務中,提取每一個MapReduce任務對應的Map任務。
[0079]在本實施例中,可以在成串行關系的一連串的MapReduce任務中,選取一部分MapReduce任務進行合并,比如圖4所示,其中,“任務一”表示MapReducel任務、“任務二”表示MapReduce2任務、…、“任務五”表示MapReduce5任務??梢灾贿x取這5個MapReduce任務中的3個(A部分)或是2個(B部分)所示的MapReduce任務。也可以選取全部5個MapReduce任務(C部分),即將所有的MapReduce任務都進行合并。
[0080]203,合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼。
[0081]其中,當所述至少兩個MapReduce任務存在信息依賴關系時,所述至少兩個MapReduce任務按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務對應的Map任務的代碼的輸出 值作為與所述前一個MapReduce任務相鄰的后一個MapReduce任務對應的Map任務的代碼的輸入值。
[0082]204,利用所述合并后的Map任務的代碼,得到所述目標MapReduce任務。
[0083]例如:
[0084]①單個Map任務的代碼信息為:
[0085]
【權利要求】
1.一種處理串行任務的數(shù)據(jù)處理裝置,其特征在于,包括: 任務提取模塊,用于獲取至少兩個MapReduce任務,所述至少兩個MapReduce任務按照執(zhí)行先后順序串行排列所述至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;其中,當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值; 合并模塊,用于合并所述至少兩個MapReduce任務得到目標MapReduce任務; 執(zhí)行模塊,用于執(zhí)行目標MapReduce任務,并得到所述目標MapReduce任務的輸出結(jié)果O
2.根據(jù)權利要求1所述的處理串行任務的數(shù)據(jù)處理裝置,其特征在于,所述合并模塊包括: 分析單元,用于從所述至少兩個MapReduce任務中,提取每一個MapReduce任務對應的Map任務; 合并單元,用于合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼,其中,當所述至少兩個MapReduce任務存在信息依賴關系時,所述至少兩個MapReduce任務按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務對應的Map任務的代碼的輸出值作為與所述前一個MapReduce任務相鄰的后一個MapReduce任務對應的Map任務的代碼的輸入值; 目標任務生成單元,用于利用所述合并后的Map任務的代碼,得到所述目標MapReduce任務。
3.根據(jù)權利要求2所述的處理串行任務的數(shù)據(jù)處理裝置,其特征在于,所述執(zhí)行模塊包括: 執(zhí)行單元,用于執(zhí)行所述合并后的Map任務; 發(fā)送單元,用于將所述合并后的Map任務的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務的設備; 接收單元,用于接收所述用于執(zhí)行Reduce任務的設備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務的設備根據(jù)所述合并后的Map任務的執(zhí)行結(jié)果得到。
4.根據(jù)權利要求2或3所述的處理串行任務的數(shù)據(jù)處理裝置,其特征在于,所述合并單元,具體用于: 獲取每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼; 先編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼;再編譯所獲取的每一個MapReduce任務對應的Map任務的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境清理操作代碼;最后得到所述合并后的Map任務的代碼。
5.一種處理串行任務的數(shù)據(jù)處理方法,其特征在于,包括: 獲取至少兩個MapReduce任務,所述至少兩個MapReduce任務按照執(zhí)行先后順序串行排列;其中,當兩個MapReduce任務串行排列時,前一個MapReduce任務被執(zhí)行后得到的輸出值為后一個MapReduce任務的輸入值; 合并所述至少兩個MapReduce任務得到目標MapReduce任務;執(zhí)行目標MapReduce任務,并得到所述目標MapReduce任務的輸出結(jié)果。
6.根據(jù)權利要求5所述的處理串行任務的數(shù)據(jù)處理方法,其特征在于,所述合并所述至少兩個MapReduce任務得到目標MapReduce任務,具體包括: 從所述至少兩個MapReduce任務中,提取每一個MapReduce任務對應的Map任務; 合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼,其中,當所述至少兩個MapReduce任務存在信息依賴關系時,所述至少兩個MapReduce任務按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務對應的Map任務的代碼的輸出值作為與所述前一個MapReduce任務相鄰的后一個MapReduce任務對應的Map任務的代碼的輸入值; 利用所述合并后的Map任務的代碼,得到所述目標MapReduce任務。
7.根據(jù)權利要求6所述的處理串行任務的數(shù)據(jù)處理方法,其特征在于,所述執(zhí)行目標MapReduce任務,得到所述目標MapReduce任務的輸出結(jié)果,包括: 執(zhí)行所述合并后的Map任務,并將所述合并后的Map任務的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務的設備; 接收所述用于執(zhí)行Reduce任務的設備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務的設備根據(jù)所述合并后的Map任務的執(zhí)行結(jié)果得到。
8.根據(jù)權利要求 6或7所述的處理串行任務的數(shù)據(jù)處理方法,其特征在于,所述合并所述至少兩個MapReduce任務中每一個MapReduce任務對應的Map任務的代碼,并得到合并后的Map任務的代碼,具體包括: 獲取每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼; 先編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境準備操作代碼;再編譯所獲取的每一個MapReduce任務對應的Map任務的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務對應的Map任務的環(huán)境清理操作代碼;最后得到所述合并后的Map任務的代碼。
【文檔編號】G06F9/46GK103838626SQ201410069692
【公開日】2014年6月4日 申請日期:2014年2月27日 優(yōu)先權日:2014年2月27日
【發(fā)明者】劉衍初, 劉超 申請人:華為技術有限公司