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

一種處理串行任務(wù)的數(shù)據(jù)處理裝置及方法

文檔序號:6539029閱讀:160來源:國知局
一種處理串行任務(wù)的數(shù)據(jù)處理裝置及方法
【專利摘要】本發(fā)明實(shí)施例公開了一種處理串行任務(wù)的數(shù)據(jù)處理裝置及方法,能夠在數(shù)據(jù)處理的過程中減少從分布式系統(tǒng)中的各個節(jié)點(diǎn)設(shè)備的磁盤上讀取輸出結(jié)果的次數(shù),從而減少處理大量數(shù)據(jù)所需的時間以及所占用的網(wǎng)絡(luò)資源。本發(fā)明的方法包括:獲取至少兩個MapReduce任務(wù),至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;其中,當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值;合并至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù);執(zhí)行目標(biāo)MapReduce任務(wù),并得到目標(biāo)MapReduce任務(wù)的輸出結(jié)果。
【專利說明】一種處理串行任務(wù)的數(shù)據(jù)處理裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子信息【技術(shù)領(lǐng)域】,尤其涉及一種處理串行任務(wù)的數(shù)據(jù)處理裝置及方法。
【背景技術(shù)】
[0002]目前,由于數(shù)據(jù)規(guī)模越來越大,為了有效處理大規(guī)模數(shù)據(jù),已經(jīng)發(fā)展出了很多適用于大數(shù)據(jù)處理的技術(shù)。其中,MapReduce是一種常用的用于處理大規(guī)模數(shù)據(jù)的技術(shù)。在應(yīng)用了 MapReduce的編程模型中,需要使用Map (映射)函數(shù)和Reduce (規(guī)約)函數(shù)。其中,map函數(shù):接受一個鍵值對(key-value pair),產(chǎn)生一組中間鍵值對,并將map函數(shù)產(chǎn)生的中間鍵值對里鍵相同的值傳遞給一個reduce函數(shù)。reduce函數(shù):接受一個鍵,以及相關(guān)的一組值,將這組值進(jìn)行合并產(chǎn)生一組規(guī)模更小的值(通常只有一個或零個值)。
[0003]在實(shí)際應(yīng)用中,一個MapReduce任務(wù)可以由一個基于Map (映射)函數(shù)的Map任務(wù)和一個基于Reduce (規(guī)約)函數(shù)的Reduce任務(wù)組成,例如:在HDFS (Hadoop DistributedFile System,Hadoop分布式文件系統(tǒng))技術(shù)中,經(jīng)常需要執(zhí)行串行的多個MapReduce任務(wù),對于每一個MapReduce任務(wù),需要先執(zhí)行Map任務(wù),并將輸出結(jié)果存儲到分布式系統(tǒng)中的各個節(jié)點(diǎn)設(shè)備的磁盤上。之后再通過采用HTTP協(xié)議從分布式系統(tǒng)中的各個節(jié)點(diǎn)設(shè)備上遠(yuǎn)程拷貝每一個Map任務(wù)執(zhí)行完畢后的輸出結(jié)果,再對該輸出結(jié)果進(jìn)行執(zhí)行Reduce任務(wù)。并重復(fù)這個過程,直至將所有的MapReduce流程依次執(zhí)行完畢。
[0004]由此可見,執(zhí)行一個MapReduce任務(wù)需要從分布式系統(tǒng)的節(jié)點(diǎn)設(shè)備的磁盤上讀取至少一次輸出結(jié)果。如果執(zhí)行多個串行MapReduce任務(wù)過程中,就需要占用很多時間和網(wǎng)絡(luò)帶寬分多次從分布式系統(tǒng)中的各個節(jié)點(diǎn)設(shè)備的磁盤上讀取輸出結(jié)果,從而增加處理大量數(shù)據(jù)所需的時間以及網(wǎng)絡(luò)資源。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的實(shí)施例提供一種處理串行任務(wù)的數(shù)據(jù)處理裝置及方法,能夠在數(shù)據(jù)處理的過程中減少從分布式系統(tǒng)中的各個節(jié)點(diǎn)設(shè)備的磁盤上讀取輸出結(jié)果的次數(shù),從而減少處理大量數(shù)據(jù)所需的時間以及所占用的網(wǎng)絡(luò)資源。
[0006]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0007]第一方面,本發(fā)明的實(shí)施例提供處理串行任務(wù)的數(shù)據(jù)處理裝置,其特征在于,包括:
[0008]任務(wù)提取模塊,用于獲取至少兩個MapReduce任務(wù),所述至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列所述至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;其中,當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值;
[0009]合并模塊,用于合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù);
[0010]執(zhí)行模塊,用于執(zhí)行目標(biāo)MapReduce任務(wù),并得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果。
[0011]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述合并模塊包括:
[0012]分析單元,用于從所述至少兩個MapReduce任務(wù)中,提取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù);
[0013]合并單元,用于合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼,其中,當(dāng)所述至少兩個MapReduce任務(wù)存在信息依賴關(guān)系時,所述至少兩個MapReduce任務(wù)按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸出值作為與所述前一個MapReduce任務(wù)相鄰的后一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸入值;
[0014]目標(biāo)任務(wù)生成單元,用于利用所述合并后的Map任務(wù)的代碼,得到所述目標(biāo)MapReduce 任務(wù)。
[0015]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述執(zhí)行模塊包括:
[0016]執(zhí)行單元,用于執(zhí)行所述合并后的Map任務(wù);
[0017]發(fā)送單元,用于將所述合并后的Map任務(wù)的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備;
[0018]接收單元,用于接收所述用于執(zhí)行Reduce任務(wù)的設(shè)備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務(wù)的設(shè)備根據(jù)所述合并后的Map任務(wù)的執(zhí)行結(jié)果得到。
[0019]結(jié)合第一方面的第一或二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述合并單元,具體用于:
[0020]獲取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼;
[0021]先編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼;再編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境清理操作代碼;最后得到所述合并后的Map任務(wù)的代碼。
[0022]第二方面,本發(fā)明的實(shí)施例提供一種處理串行任務(wù)的數(shù)據(jù)處理方法,其特征在于,包括:
[0023]獲取至少兩個MapReduce任務(wù),所述至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;其中,當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值;
[0024]合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù);
[0025]執(zhí)行目標(biāo)MapReduce任務(wù),并得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果。
[0026]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù),具體包括:
[0027]從所述至少兩個MapReduce任務(wù)中,提取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù);
[0028]合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼,其中,當(dāng)所述至少兩個MapReduce任務(wù)存在信息依賴關(guān)系時,所述至少兩個MapReduce任務(wù)按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸出值作為與所述前一個MapReduce任務(wù)相鄰的后一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸入值;
[0029]利用所述合并后的Map任務(wù)的代碼,得到所述目標(biāo)MapReduce任務(wù)。
[0030]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述執(zhí)行目標(biāo)MapReduce任務(wù),得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果,包括:
[0031]執(zhí)行所述合并后的Map任務(wù),并將所述合并后的Map任務(wù)的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備;
[0032]接收所述用于執(zhí)行Reduce任務(wù)的設(shè)備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務(wù)的設(shè)備根據(jù)所述合并后的Map任務(wù)的執(zhí)行結(jié)果得到。
[0033]結(jié)合第二方面的第一或二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,其特征在于,所述合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼,具體包括:
[0034]獲取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼;
[0035]先編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼;再編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境清理操作代碼;最后得到所述合并后的Map任務(wù)的代碼。
[0036]第三方面,本發(fā)明的實(shí)施例提供一種處理串行任務(wù)的計算設(shè)備,其特征在于,所述計算設(shè)備至少包括:處理器和通信接口,所述處理器和通信接口通過所述計算設(shè)備的總線相連接,所述通信接口用于所述計算設(shè)備與外部存儲設(shè)備進(jìn)行數(shù)據(jù)傳輸;
[0037]所述處理器,用于獲取至少兩個MapReduce任務(wù),并合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù),所述至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;其中,當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值;
[0038]所述處理器,還用于執(zhí)行目標(biāo)MapReduce任務(wù),并得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果,并將所述輸出結(jié)果發(fā)送至所述通信接口 ;
[0039]所述通信接口,用于向所述外部存儲設(shè)備發(fā)送所述輸出結(jié)果。
[0040]結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述處理器,具體用于從所述至少兩個MapReduce任務(wù)中,提取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù);并根據(jù)所述至少兩個MapReduce任務(wù)相互之間的信息依賴關(guān)系,合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼,其中,當(dāng)所述至少兩個MapReduce任務(wù)存在信息依賴關(guān)系時,所述至少兩個MapReduce任務(wù)按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸出值作為與所述前一個MapReduce任務(wù)相鄰的后一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸入值;并利用所述合并后的Map任務(wù)的代碼,得到所述目標(biāo)MapReduce任務(wù)。
[0041]結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述處理器,具體用于執(zhí)行所述合并后的Map任務(wù),并將所述合并后的Map任務(wù)的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備;[0042]接收所述用于執(zhí)行Reduce任務(wù)的設(shè)備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務(wù)的設(shè)備根據(jù)所述合并后的Map任務(wù)的執(zhí)行結(jié)果得到。
[0043]結(jié)合第三方面的第一或二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述處理器,具體用于獲取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼;并先編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼;再編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境清理操作代碼;最后得到所述合并后的Map任務(wù)的代碼。
[0044]本發(fā)明實(shí)施例提供的處理串行任務(wù)的計算設(shè)備、數(shù)據(jù)處理裝置及方法,能夠合并多個串行MapReduce任務(wù),并執(zhí)行合并得到的MapReduce任務(wù)。在合并得到的MapReduce任務(wù)中,只需執(zhí)行一次Reduce任務(wù)。因此本發(fā)明通過合并執(zhí)行MapReduce任務(wù)減少了執(zhí)行串行MapReduce任務(wù)時所需Reduce任務(wù)的次數(shù),因此節(jié)省了執(zhí)行Reduce任務(wù)過程中從分布式系統(tǒng)中的各個節(jié)點(diǎn)設(shè)備的磁盤上讀取輸出結(jié)果所需占用的時間和網(wǎng)絡(luò)帶寬,從而減少處理大量數(shù)據(jù)所需的時間以及網(wǎng)絡(luò)資源?!緦@綀D】

【附圖說明】
[0045]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0046]圖1為本發(fā)明實(shí)施例提供的一種處理串行任務(wù)的數(shù)據(jù)處理方法的流程圖;
[0047]圖la、圖1b為本發(fā)明實(shí)施例提供的具體實(shí)例的邏輯示意圖;
[0048]圖2為本發(fā)明實(shí)施例提供的另一種處理串行任務(wù)的數(shù)據(jù)處理方法的流程圖;
[0049]圖3為本發(fā)明實(shí)施例提供的再一種處理串行任務(wù)的數(shù)據(jù)處理方法的流程圖;
[0050]圖4為本發(fā)明實(shí)施例提供的一種具體實(shí)例的示意圖;
[0051]圖5為本發(fā)明實(shí)施例提供的一種處理串行任務(wù)的計算設(shè)備的結(jié)構(gòu)示意圖;
[0052]圖6為本發(fā)明實(shí)施例提供的一種處理串行任務(wù)的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0053]圖7為本發(fā)明實(shí)施例提供的另一種處理串行任務(wù)的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0054]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0055]在本發(fā)明實(shí)施例中使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實(shí)施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”或“響應(yīng)于檢測”。類似地,取決于語境,短語“如果確定”或“如果檢測(陳述的條件或事件)”可以被解釋成為“當(dāng)確定時”或“響應(yīng)于確定”或“當(dāng)檢測(陳述的條件或事件)時”或“響應(yīng)于檢測(陳述的條件或事件)”。
[0056]需要說明的是,本發(fā)明實(shí)施例提供的實(shí)施例可以由任何一種具有數(shù)據(jù)處理和傳輸功能的計算設(shè)備執(zhí)行。比如:服務(wù)器、計算機(jī)或終端設(shè)備等。具體的,本實(shí)施例的實(shí)施過程可以利用現(xiàn)有的實(shí)現(xiàn)MapReduce技術(shù)的硬件環(huán)境,并可以將經(jīng)過本實(shí)施例的方法處理后的數(shù)據(jù)存儲在分布式系統(tǒng)上。
[0057]本發(fā)明實(shí)施例提供一種處理串行任務(wù)的數(shù)據(jù)處理方法,如圖1所示,包括:
[0058]101,計算 設(shè)備獲取至少兩個MapReduce任務(wù)。
[0059]其中,至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值。當(dāng)計算設(shè)備開始運(yùn)行M/R (MapReduce框架)并開始處理MapReduce任務(wù)時,獲取至少兩個按照執(zhí)行先后順序串行排列MapReduce任務(wù),例如:計算設(shè)備獲取的是一連串用于實(shí)現(xiàn)計算過程的MapReduce任務(wù),其中前一個MapReduce任務(wù)的處理結(jié)果可以是之后一個或多個的MapReduce任務(wù)的輸入值。
[0060]102,合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù)。
[0061]在本實(shí)施例中,合并所述至少兩個MapReduce任務(wù)的過程可以理解為將至少兩個MapReduce任務(wù)各自的Map任務(wù)進(jìn)行合并,例如:
[0062]如圖1a所示,其中“第一映射任務(wù)”表示Mapl任務(wù),“第二映射任務(wù)”表示Map2任務(wù),…,“第五映射任務(wù)”表示Map5任務(wù)?!盎喨蝿?wù)”表示Reduce任務(wù)。
MapReduce l_MapReduce2-----MapReduce N為串行的任務(wù),N為大于等于3的整數(shù)。
MapReduce I任務(wù)包括執(zhí)行Map I任務(wù)后輸出結(jié)果Output I。MapReduce2任務(wù)包括執(zhí)行Map2任務(wù)后輸出結(jié)果0utput2,并且需要將Outputl作為執(zhí)行Map2過程的輸入?yún)?shù)?!apReduce N任務(wù)包括執(zhí)行Map N任務(wù)后輸出結(jié)果Output N,并且需要將Output N-1作為執(zhí)行Map N過程的輸入?yún)?shù)。則計算設(shè)備將Mapl任務(wù)、Map2任務(wù)、…Map N任務(wù)進(jìn)行合并。并生成一個新的Map任務(wù),稱之為目標(biāo)Map任務(wù),執(zhí)行目標(biāo)Map任務(wù)的后的輸出結(jié)果即為Output No執(zhí)行目標(biāo)Map任務(wù)并輸出了 Output N后,再將Output N發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備,這樣就實(shí)現(xiàn)了計算設(shè)備將MapReduce1、MapReduce2、…、MapReduce N進(jìn)行合并得到目標(biāo)MapReduce任務(wù),而目標(biāo)MapReduce任務(wù)即為目標(biāo)Map任務(wù)+Reduce任務(wù)的組合。比如:
[0063]MapReducel_MapReduce2 - MapReduce3 - MapReduce4 - MapReduce5 為用于實(shí)現(xiàn)累加計算的串行任務(wù)。其中原始數(shù)值為10, MapReducel任務(wù)為用于在原始數(shù)值上加I的任務(wù),MapReducel任務(wù)的Mapl任務(wù)用于實(shí)現(xiàn)“+I”。MapReduce2任務(wù)為用于在原始數(shù)值上加2的任務(wù),MapReduce2任務(wù)的Map2任務(wù)用于實(shí)現(xiàn)“+2”。MapReduce3任務(wù)為用于在原始數(shù)值上加-1的任務(wù),MapReduce3任務(wù)的Map3任務(wù)用于實(shí)現(xiàn)“_1”。MapReduce4任務(wù)為用于在原始數(shù)值上加O的任務(wù),MapReduce4任務(wù)的Map4任務(wù)用于實(shí)現(xiàn)“+O”。MapReduce5任務(wù)為用于在原始數(shù)值上加I的任務(wù),MapReduce5任務(wù)的Map5任務(wù)用于實(shí)現(xiàn)“+I”。
[0064]若按照現(xiàn)有技術(shù)中的方案,則對于MapReducel_MapReduce2 - MapReduce3 -MapReduce4 - MapReduce5的串行任務(wù)的執(zhí)行過程如圖1b所示,其中,“任務(wù)一 ”表示MapReducel、“任務(wù)二”表不MapReduce2、…、“任務(wù)五”表不MapReduce5 ;“第一映射任務(wù)”表示Mapl任務(wù),“第二映射任務(wù)”表示Map2任務(wù),…,“第五映射任務(wù)”表示Map5任務(wù)。“化簡任務(wù)”表示Reduce任務(wù)。
[0065]現(xiàn)有技術(shù)中的執(zhí)行過程包括:
[0066]執(zhí)行MapReducel,讀取原始數(shù)值得到輸入值10,執(zhí)行Mapl任務(wù)得到輸出結(jié)果11,并將輸出結(jié)果11發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備,以便對輸出結(jié)果11執(zhí)行Reduce任務(wù)。
[0067]執(zhí)行MapReduce2,從分布式系統(tǒng)上讀取SI的輸出結(jié)果11作為輸入值,執(zhí)行Map2任務(wù)得到輸出結(jié)果13,并將輸出結(jié)果13發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備,以便對輸出結(jié)果11執(zhí)行Reduce任務(wù)。[0068]執(zhí)行MapReduce3,從分布式系統(tǒng)上讀取S2的輸出結(jié)果13,執(zhí)行Map3任務(wù)得到輸出結(jié)果12,并將輸出結(jié)果12發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備,以便對輸出結(jié)果11執(zhí)行Reduce 任務(wù)。
[0069]執(zhí)行MapReduce4,從分布式系統(tǒng)上讀取S3的輸出結(jié)果12,執(zhí)行Map4任務(wù)得到輸出結(jié)果12,并將輸出結(jié)果12發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備,以便對輸出結(jié)果11執(zhí)行Reduce 任務(wù)。
[0070]執(zhí)行MapReduce5,從分布式系統(tǒng)上讀取S4的輸出結(jié)果12,執(zhí)行Map5任務(wù)得到輸出結(jié)果13,并將輸出結(jié)果15發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備,以便對輸出結(jié)果11執(zhí)行Reduce 任務(wù)。
[0071]而在本實(shí)施例中,計算設(shè)備確定了需要合并的串行排列的MapReduce任務(wù)后,可以將所有的MapReduce任務(wù)合并為一個MapReduce任務(wù),比如:合并MapReducel任務(wù)、MapReduce2 任務(wù)、MapReduce3 任務(wù)、MapReduce4 任務(wù)和 MapReduce5 任務(wù)后,得到第一目標(biāo)MapReduce任務(wù)。第一目標(biāo)MapReduce任務(wù)的Map任務(wù)為Map M。其中由Mapl至5直接在計算設(shè)備的內(nèi)存中順序執(zhí)行“+1+2-1+0+1”,得到Map M任務(wù)為“+3”。則執(zhí)行第一目標(biāo)MapReduce 任務(wù)的輸出結(jié)果 Output M=10+3=13。
[0072]或者,計算設(shè)備確定了需要合并的串行排列的MapReduce任務(wù)后,也可以將所有的MapReduce任務(wù)當(dāng)中的一部分合并為一個MapReduce任務(wù),比如:合并MapReducel任務(wù)、MapReduce2 任務(wù)、MapReduce3 任務(wù)、MapReduce4 任務(wù)得到第二目標(biāo) MapReduce 任務(wù),第二目標(biāo)MapReduce任務(wù)的Map任務(wù)為Map M,。其中由Mapl至4進(jìn)行直接在計算設(shè)備的內(nèi)存中順序執(zhí)行“+1+2-1+0”,得到Map M任務(wù)為“+2”。
[0073]103,執(zhí)行目標(biāo)MapReduce任務(wù),并得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果。
[0074]本發(fā)明實(shí)施例提供的處理串行任務(wù)的數(shù)據(jù)處理方法,能夠合并多個串行MapReduce任務(wù),并執(zhí)行合并得到的MapReduce任務(wù)。在合并得到的MapReduce任務(wù)中,只需執(zhí)行一次Reduce任務(wù)。因此本發(fā)明通過合并執(zhí)行MapReduce任務(wù)減少了執(zhí)行串行MapReduce任務(wù)時所需Reduce任務(wù)的次數(shù),因此節(jié)省了執(zhí)行Reduce任務(wù)過程中從分布式系統(tǒng)中的各個節(jié)點(diǎn)設(shè)備的磁盤上讀取輸出結(jié)果所需占用的時間和網(wǎng)絡(luò)帶寬,從而減少處理大量數(shù)據(jù)所需的時間以及網(wǎng)絡(luò)資源。
[0075]具體的,本發(fā)明實(shí)施例可以包括如圖2所示的方法:
[0076]201,計算設(shè)備獲取至少兩個MapReduce任務(wù)。[0077]其中,至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值。當(dāng)計算設(shè)備開始運(yùn)行M/R(MapReduce框架)并開始處理MapReduce任務(wù)時,對于待處理的MapReduce任務(wù),從中獲取至少兩個按照執(zhí)行先后順序串行排列MapReduce任務(wù),例如:計算設(shè)備獲取的是一連串用于實(shí)現(xiàn)計算過程的MapReduce任務(wù),其中前一個MapReduce任務(wù)的處理結(jié)果可以是之后一個或多個的MapReduce任務(wù)的輸入值。
[0078]202,從所述至少兩個MapReduce任務(wù)中,提取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)。
[0079]在本實(shí)施例中,可以在成串行關(guān)系的一連串的MapReduce任務(wù)中,選取一部分MapReduce任務(wù)進(jìn)行合并,比如圖4所示,其中,“任務(wù)一”表示MapReducel任務(wù)、“任務(wù)二”表示MapReduce2任務(wù)、…、“任務(wù)五”表示MapReduce5任務(wù)??梢灾贿x取這5個MapReduce任務(wù)中的3個(A部分)或是2個(B部分)所示的MapReduce任務(wù)。也可以選取全部5個MapReduce任務(wù)(C部分),即將所有的MapReduce任務(wù)都進(jìn)行合并。
[0080]203,合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼。
[0081]其中,當(dāng)所述至少兩個MapReduce任務(wù)存在信息依賴關(guān)系時,所述至少兩個MapReduce任務(wù)按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸出 值作為與所述前一個MapReduce任務(wù)相鄰的后一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸入值。
[0082]204,利用所述合并后的Map任務(wù)的代碼,得到所述目標(biāo)MapReduce任務(wù)。
[0083]例如:
[0084]①單個Map任務(wù)的代碼信息為:
[0085]
【權(quán)利要求】
1.一種處理串行任務(wù)的數(shù)據(jù)處理裝置,其特征在于,包括: 任務(wù)提取模塊,用于獲取至少兩個MapReduce任務(wù),所述至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列所述至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;其中,當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值; 合并模塊,用于合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù); 執(zhí)行模塊,用于執(zhí)行目標(biāo)MapReduce任務(wù),并得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果O
2.根據(jù)權(quán)利要求1所述的處理串行任務(wù)的數(shù)據(jù)處理裝置,其特征在于,所述合并模塊包括: 分析單元,用于從所述至少兩個MapReduce任務(wù)中,提取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù); 合并單元,用于合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼,其中,當(dāng)所述至少兩個MapReduce任務(wù)存在信息依賴關(guān)系時,所述至少兩個MapReduce任務(wù)按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸出值作為與所述前一個MapReduce任務(wù)相鄰的后一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸入值; 目標(biāo)任務(wù)生成單元,用于利用所述合并后的Map任務(wù)的代碼,得到所述目標(biāo)MapReduce任務(wù)。
3.根據(jù)權(quán)利要求2所述的處理串行任務(wù)的數(shù)據(jù)處理裝置,其特征在于,所述執(zhí)行模塊包括: 執(zhí)行單元,用于執(zhí)行所述合并后的Map任務(wù); 發(fā)送單元,用于將所述合并后的Map任務(wù)的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備; 接收單元,用于接收所述用于執(zhí)行Reduce任務(wù)的設(shè)備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務(wù)的設(shè)備根據(jù)所述合并后的Map任務(wù)的執(zhí)行結(jié)果得到。
4.根據(jù)權(quán)利要求2或3所述的處理串行任務(wù)的數(shù)據(jù)處理裝置,其特征在于,所述合并單元,具體用于: 獲取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼; 先編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼;再編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境清理操作代碼;最后得到所述合并后的Map任務(wù)的代碼。
5.一種處理串行任務(wù)的數(shù)據(jù)處理方法,其特征在于,包括: 獲取至少兩個MapReduce任務(wù),所述至少兩個MapReduce任務(wù)按照執(zhí)行先后順序串行排列;其中,當(dāng)兩個MapReduce任務(wù)串行排列時,前一個MapReduce任務(wù)被執(zhí)行后得到的輸出值為后一個MapReduce任務(wù)的輸入值; 合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù);執(zhí)行目標(biāo)MapReduce任務(wù),并得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果。
6.根據(jù)權(quán)利要求5所述的處理串行任務(wù)的數(shù)據(jù)處理方法,其特征在于,所述合并所述至少兩個MapReduce任務(wù)得到目標(biāo)MapReduce任務(wù),具體包括: 從所述至少兩個MapReduce任務(wù)中,提取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù); 合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼,其中,當(dāng)所述至少兩個MapReduce任務(wù)存在信息依賴關(guān)系時,所述至少兩個MapReduce任務(wù)按照執(zhí)行的先后順序依次排列,并且前一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸出值作為與所述前一個MapReduce任務(wù)相鄰的后一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼的輸入值; 利用所述合并后的Map任務(wù)的代碼,得到所述目標(biāo)MapReduce任務(wù)。
7.根據(jù)權(quán)利要求6所述的處理串行任務(wù)的數(shù)據(jù)處理方法,其特征在于,所述執(zhí)行目標(biāo)MapReduce任務(wù),得到所述目標(biāo)MapReduce任務(wù)的輸出結(jié)果,包括: 執(zhí)行所述合并后的Map任務(wù),并將所述合并后的Map任務(wù)的執(zhí)行結(jié)果發(fā)送至用于執(zhí)行Reduce任務(wù)的設(shè)備; 接收所述用于執(zhí)行Reduce任務(wù)的設(shè)備發(fā)送的所述輸出結(jié)果,所述輸出結(jié)果由所述用于執(zhí)行Reduce任務(wù)的設(shè)備根據(jù)所述合并后的Map任務(wù)的執(zhí)行結(jié)果得到。
8.根據(jù)權(quán)利要求 6或7所述的處理串行任務(wù)的數(shù)據(jù)處理方法,其特征在于,所述合并所述至少兩個MapReduce任務(wù)中每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的代碼,并得到合并后的Map任務(wù)的代碼,具體包括: 獲取每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼、邏輯操作代碼和環(huán)境清理操作代碼; 先編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境準(zhǔn)備操作代碼;再編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的邏輯操作代碼;之后編譯所獲取的每一個MapReduce任務(wù)對應(yīng)的Map任務(wù)的環(huán)境清理操作代碼;最后得到所述合并后的Map任務(wù)的代碼。
【文檔編號】G06F9/46GK103838626SQ201410069692
【公開日】2014年6月4日 申請日期:2014年2月27日 優(yōu)先權(quán)日:2014年2月27日
【發(fā)明者】劉衍初, 劉超 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1