支持快速查詢Map-Reduce輸出結(jié)果的分桶方法、裝置及設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種支持快速查詢Map-Reduce輸出結(jié)果的分桶方法、裝置及設(shè)備。
【背景技術(shù)】
[0002]Map-Reduce是hadoop中的分布式計算模型,且以Key-value (鍵值)為數(shù)據(jù)模型,可適合用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。Map (映射)是根據(jù)指定的算法對數(shù)據(jù)集中的各個數(shù)據(jù)進行計算,并將計算結(jié)果交由分桶模塊,分桶模塊根據(jù)指定的條件將計算結(jié)果發(fā)給相應的Reduce (歸約)任務來處理。目前,Map-Reduce的計算結(jié)果都很龐大,支持最多99999個part輸出文件,而現(xiàn)有的分桶方法大都不能支持快速查詢到給定的Map任務中的key在哪個part文件中,只能通過新增Map-Reduce任務遍歷所有的結(jié)果數(shù)據(jù)來查詢Map任務中的key,這給使用Map-Reduce的數(shù)據(jù)用戶帶來了很大的不便。
[0003]相關(guān)技術(shù)中可將Map-Reduce的計算結(jié)果存儲到HBase ( —種分布式的、面向列的開源數(shù)據(jù)庫)、Mongo DB ( —種非關(guān)系型數(shù)據(jù)庫)或mySQL( —種關(guān)系型數(shù)據(jù)庫管理系統(tǒng))中,但是仍然存在以下問題:
[0004]1、由于Map-Reduce的計算果果數(shù)據(jù)量大,其導入到其他存儲時,需要耗費大量時間和資源,導入代價較高;
[0005]2、如果Map-Reduce是小時級或天級運行的任務,則需要頻繁地刪除舊的存儲記錄,并建立新存儲記錄,數(shù)據(jù)使用率低,性價比低。
【發(fā)明內(nèi)容】
[0006]本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。為此,本發(fā)明的第一個目的在于提出一種支持快速查詢Map-Reduce輸出結(jié)果的分桶方法,該方法可以快速查詢到Map任務中的key對應的計算結(jié)果,提高了數(shù)據(jù)分析的效率。
[0007]本發(fā)明的第二個目的在于提出一種支持快速查詢Map-Reduce輸出結(jié)果的分桶裝置。
[0008]本發(fā)明的第三個目的在于提出一種設(shè)備。
[0009]為達上述目的,根據(jù)本發(fā)明第一方面實施例提出了一種支持快速查詢Map-Reduce輸出結(jié)果的分桶方法,包括以下步驟:獲取Reduce任務的數(shù)量,并根據(jù)所述數(shù)量確定對應的哈希策略;根據(jù)所述哈希策略對Map任務中的Key進行哈希計算,生成第一整數(shù)標識;將所述第一整數(shù)標識作為Reduce任務的標識,并根據(jù)所述Reduce任務的標識分配對應的Reduce任務進行處理。
[0010]根據(jù)本發(fā)明實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶方法,可根據(jù)Reduce任務的數(shù)量確定對應的哈希策略,并對Map任務中的Key進行哈希計算生成第一整數(shù)標識,再將第一整數(shù)標識作為Reduce任務的標識分配對應的Reduce任務進行處理,從而可以快速查詢到Map任務中的key對應的計算結(jié)果,便于管理,節(jié)省了時間和資源,提高了數(shù)據(jù)分析的效率,且提高了數(shù)據(jù)用戶的工作效率。
[0011]另外,根據(jù)本發(fā)明上述實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶方法還可以具有如下附加的技術(shù)特征:
[0012]根據(jù)本發(fā)明的一個實施例,所述方法還包括:對所述Map任務參數(shù)進行設(shè)置,將所述第一整數(shù)標識設(shè)置為鍵值。
[0013]根據(jù)本發(fā)明的一個實施例,所述將所述第一整數(shù)標識作為Reduce任務的標識包括:讀取所述Map任務的鍵值,將所述鍵值作為Reduce任務的標識。
[0014]根據(jù)本發(fā)明的一個實施例,所述方法還包括:用所述第一整數(shù)標識命名所述Reduce任務進行處理之后的輸出文件。
[0015]根據(jù)本發(fā)明的一個實施例,所述方法還包括:用戶端根據(jù)所述哈希策略對預設(shè)的Key進行哈希計算以生成第二整數(shù)標識,從所述Reduce任務進行處理之后的輸出文件中查詢所述第二整數(shù)標識對應的結(jié)果數(shù)據(jù)。
[0016]根據(jù)本發(fā)明的一個實施例,所述第一整數(shù)標識和第二整數(shù)標識相等。
[0017]根據(jù)本發(fā)明的一個實施例,所述Reduce任務的數(shù)量為N,所述第一整數(shù)標識和第二整數(shù)標識大于或等于零且小于N。
[0018]根據(jù)本發(fā)明第二方面實施例提出了一種支持快速查詢Map-Reduce輸出結(jié)果的分桶裝置,包括:確定模塊用于獲取Reduce任務的數(shù)量,根據(jù)所述數(shù)量確定對應的哈希策略;生成模塊,用于根據(jù)所述哈希策略對Map任務中的key進行哈希計算以生成第一整數(shù)標識;分配模塊,用于將所述第一整數(shù)標識作為Reduce任務的標識,并根據(jù)所述Reduce任務的標識分配對應的Reduce任務進行處理。
[0019]根據(jù)本發(fā)明實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶裝置,可通過確定模塊根據(jù)Reduce任務的數(shù)量確定對應的哈希策略,并由生成模塊對Map任務中的Key進行哈希計算生成第一整數(shù)標識,再通過分配模塊將第一整數(shù)標識作為Reduce任務的標識分配對應的Reduce任務進行處理,從而可以快速查詢到Map任務中的key對應的計算結(jié)果,便于管理,節(jié)省了時間和資源,提高了數(shù)據(jù)分析的效率,且提高了數(shù)據(jù)用戶的工作效率。
[0020]另外,根據(jù)本發(fā)明上述實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶裝置還可以具有如下附加的技術(shù)特征:
[0021]根據(jù)本發(fā)明的一個實施例,所述裝置還包括設(shè)置模塊,用于對所述Map任務參數(shù)進行設(shè)置,將所述第一整數(shù)標識設(shè)置為鍵值。
[0022]根據(jù)本發(fā)明的一個實施例,分配模塊具體用于讀取所述Map任務的鍵值,將所述鍵值作為Reduce任務的標識。
[0023]根據(jù)本發(fā)明的一個實施例,所述裝置還包括輸出模塊,用于用所述第一整數(shù)標識命名所述Reduce任務進行處理之后的輸出文件。
[0024]根據(jù)本發(fā)明的一個實施例,用戶端根據(jù)所述哈希策略對預設(shè)的Key進行哈希計算以生成第二整數(shù)標識,從所述Reduce任務進行處理之后的輸出文件中查詢所述第二整數(shù)標識對應的結(jié)果數(shù)據(jù)。
[0025]根據(jù)本發(fā)明的一個實施例,所述第一整數(shù)標識和第二整數(shù)標識相等。
[0026]根據(jù)本發(fā)明的一個實施例,所述Reduce任務的數(shù)量為N,所述第一整數(shù)標識和第二整數(shù)標識大于或等于零且小于N。
[0027]為達上述目的,根據(jù)本發(fā)明第三方面實施例提出了一種設(shè)備,包括外殼、屏幕、處理器和電路板;所述屏幕安置在所述外殼上,所述電路板安置在所述外殼圍成的空間內(nèi)部,所述處理器設(shè)置在所述電路板上;所述處理器用于處理數(shù)據(jù),并具體用于:獲取Reduce任務的數(shù)量,并根據(jù)所述數(shù)量確定對應的哈希策略;根據(jù)所述哈希策略對Map任務中的Key進行哈希計算,生成第一整數(shù)標識;將所述第一整數(shù)標識作為Reduce任務的標識,并根據(jù)所述Reduce任務的標識分配對應的Reduce任務進行處理。
[0028]本發(fā)明實施例的設(shè)備,可根據(jù)Reduce任務的數(shù)量確定對應的哈希策略,并對Map任務中的Key進行哈希計算生成第一整數(shù)標識,再將第一整數(shù)標識作為Reduce任務的標識分配對應的Reduce任務進行處理,從而可以快速查詢到Map任務中的key對應的計算結(jié)果,便于管理,節(jié)省了時間和資源,提高了數(shù)據(jù)分析的效率,且提高了數(shù)據(jù)用戶的工作效率。
【附圖說明】
[0029]本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0030]圖1是根據(jù)本發(fā)明一個實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶方法的流程圖;
[0031]圖2是根據(jù)本發(fā)明一個實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶框架圖;
[0032]圖3是根據(jù)本發(fā)明另一個實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶方法的流程圖;
[0033]圖4是根據(jù)本發(fā)明一個實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶系統(tǒng)的結(jié)構(gòu)框圖;
[0034]圖5是根據(jù)本發(fā)明另一個實施例的支持快速查詢Map-Reduce輸出結(jié)果的分桶系統(tǒng)的結(jié)構(gòu)框圖。
【具體實施方式】
[0035]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0036]Map-Reduce是hadoop中的分布式計算模型,可適合用