欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于MapReduce的數(shù)據(jù)處理方法、客戶端和系統(tǒng)的制作方法

文檔序號:6520313閱讀:180來源:國知局
基于MapReduce的數(shù)據(jù)處理方法、客戶端和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于MapReduce的數(shù)據(jù)處理方法,包括:客戶端查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,所述多個文件夾中存儲著需要處理的數(shù)據(jù)文件;遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序中,直至讀取完所有的數(shù)據(jù)文件,由Map程序依次對所述數(shù)據(jù)文件進(jìn)行map計算。此外,還公開了客戶端和系統(tǒng)。不需要和現(xiàn)有技術(shù)那樣必須要先將數(shù)據(jù)預(yù)處理到同一個文件夾下,由此,計算效率較高。
【專利說明】基于MapReduce的數(shù)據(jù)處理方法、客戶端和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于一種基于MapReduce的數(shù)據(jù)處理方法、客戶端和系統(tǒng)。
【背景技術(shù)】
[0002]目前主流的大數(shù)據(jù)處理框架基本都是基于Apache的開源項目Hadoop進(jìn)行開發(fā),但是由于Hadoop本身所使用的MapReduce框架是基于HDFS定義的文件系統(tǒng),所以在讀取文件的時候?qū)τ谳斎肼窂接兄欢ǖ囊?。并且由于MapReduce的處理流程屬于順序處理的流程,無法持續(xù)進(jìn)行迭代的性質(zhì)也給大數(shù)據(jù)的處理造成了一定的麻煩。
[0003]目前MapReduce架構(gòu)在讀取輸入文件夾的時候不支持多個文件夾內(nèi)容讀取,意味著所有的輸入文件都必須要在同一個文件夾下。這樣對于大部分應(yīng)用來講,若需要通過MapReduce來操作數(shù)據(jù)必須要先將數(shù)據(jù)預(yù)處理到同一個文件夾下,當(dāng)遇到輸入數(shù)據(jù)量級非常大的時候,預(yù)處理的時間則會超過數(shù)據(jù)正常處理計算的時間,進(jìn)而導(dǎo)致程序處理效率低。
[0004]比如,Mapper類從input split中讀取一個個的record,然后依次調(diào)用Mapper的map函數(shù),將結(jié)果輸出。map的輸出并不是直接寫入硬盤,而是將其寫入緩存memorybuffer ο當(dāng)buffer中數(shù)據(jù)的到達(dá)一定的大小,一個背景線程將數(shù)據(jù)開始寫入硬盤。在寫入硬盤之前,內(nèi)存中的數(shù)據(jù)通過partitioner分成多個partition。在同一個partition中,背景線程會將數(shù)據(jù)按照key在內(nèi)存中排序。每次從內(nèi)存向硬盤flush數(shù)據(jù),都生成一個新的spill文件。當(dāng)此task結(jié)束之前,所有的spill文件被合并為一個整的被partition的而且排好序的文件。reducer可以通過http協(xié)議請求map的輸出文件,tracker, http, threads可以設(shè)置http服務(wù)線程數(shù)。
[0005]當(dāng)map task 結(jié)束后,其通知 TaskTracker, TaskTracker 通知 JobTracker。
[0006]對于一個job, JobTracker 知道 TaskTracer 和 map 輸出的對應(yīng)關(guān)系。reducer 中一個線程周期性的向JobTracker請求map輸出的位置,直到其取得了所有的map輸出reducetask需要其對應(yīng)的partition的所有的map輸出.reduce task中的copy過程即當(dāng)每個map task結(jié)束的時候就開始拷貝輸出,因?yàn)椴煌膍ap task完成時間不同。reduce task中有多個copy線程,可以并行拷貝map輸出。當(dāng)很多map輸出拷貝到reduce task后,一個背景線程將其合并為一個大的排好序的文件。當(dāng)所有的map輸出都拷貝到reduce task后,進(jìn)入sort過程,將所有的map輸出合并為大的排好序的文件。最后進(jìn)入reduce過程,調(diào)用reducer的reduce函數(shù),處理排好序的輸出的每個key,最后的結(jié)果寫入HDFS。
[0007]由此可見,整個MapReduce的過程是非迭代性質(zhì)的,屬于直線型one-1n-one_out的模式,這在處理某些應(yīng)用場景下,則明顯不適用。

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

[0008]本發(fā)明所要解決的技術(shù)問題是提供一種基于MapReduce的數(shù)據(jù)處理方法,用以在不對多個文件夾進(jìn)行預(yù)處理的情況下直接進(jìn)行MapReduce計算,從而降低由于預(yù)處理給程序處理上帶來的壓力。[0009]本發(fā)明解決上述技術(shù)問題所采取的技術(shù)方案如下:
[0010]—種基于MapReduce的數(shù)據(jù)處理方法,包括:
[0011]客戶端查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,所述多個文件夾中存儲著需要處理的數(shù)據(jù)文件;
[0012]遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序中,直至讀取完所有的數(shù)據(jù)文件,并由Map程序依次對所述數(shù)據(jù)文件進(jìn)行map計算。
[0013]進(jìn)一步還包括:
[0014]獲取所述多個文件夾的路徑信息,根據(jù)所述多個路徑信息遍歷所述多個文件夾。
[0015]所述多個文件夾按照預(yù)設(shè)的命名規(guī)則進(jìn)行命名,所述Map程序依次遍歷所述多個文件夾,包括:
[0016]獲取文件夾的最小命名和文件夾的最大命名,通過循環(huán)調(diào)用的依次遍歷所述多個文件夾。
[0017]還包括:Map程序依次對所述數(shù)據(jù)文件進(jìn)行map計算后,輸出的結(jié)果送入Reduce程序進(jìn)行reduce計算。
[0018]一種基于MapReduce的數(shù)據(jù)處理客戶端,包括:
[0019]查詢單元,用于查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,且每一個文件夾中都存儲著需要處理的數(shù)據(jù)文件;
[0020]任務(wù)生成單元,用于遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序,直至讀取完所有的數(shù)據(jù)文件。
[0021]進(jìn)一步包括:
[0022]文件夾操作單元,用于獲取所述多個文件夾的路徑信息;
[0023]所述任務(wù)生成單元,進(jìn)一步用于根據(jù)所述路徑信息依次遍歷所述多個文件夾。
[0024]所述多個文件夾按照預(yù)設(shè)的命名規(guī)則進(jìn)行命名;
[0025]其中,所述任務(wù)生成單元,進(jìn)一步獲取文件夾的最小命名和文件夾的最大命名,通過循環(huán)調(diào)用依次遍歷所述多個文件夾。
[0026]一種基于MapReduce的數(shù)據(jù)處理系統(tǒng),包括:
[0027]客戶端,包括:
[0028]查詢單元,用于查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,且每一個文件夾中都存儲著需要處理的數(shù)據(jù)文件;
[0029]任務(wù)生成單元,用于遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序,直至讀取完所有的數(shù)據(jù)文件;
[0030]MapReduce 裝置,包括:
[0031]Map單元,用于依次對所述數(shù)據(jù)文件進(jìn)行map計算;Reduce單元,用于對map后的結(jié)果進(jìn)行reduce計算,并輸出結(jié)果。
[0032]所述客戶端進(jìn)一步包括:
[0033]文件夾操作單元,用于獲取所述多個文件夾的路徑信息;
[0034]所述任務(wù)生成單元,進(jìn)一步用于根據(jù)所述路徑信息依次遍歷所述多個文件夾。
[0035]所述多個文件夾按照預(yù)設(shè)的命名規(guī)則進(jìn)行命名;[0036]其中,所述客戶端中,所述任務(wù)生成單元,進(jìn)一步獲取文件夾的最小命名和文件夾的最大命名,通過循環(huán)調(diào)用依次遍歷所述多個文件夾。
[0037]本發(fā)明采取了上述方案以后,由于客戶端在生成任務(wù)的時候,能夠多次遍歷文件夾從而讀取數(shù)據(jù),不需要和現(xiàn)有技術(shù)那樣必須要先將數(shù)據(jù)預(yù)處理到同一個文件夾下,由此,計算效率較高。
[0038]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
【專利附圖】

【附圖說明】
[0039]下面結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)的描述,以使得本發(fā)明的上述優(yōu)點(diǎn)更加明確。其中,
[0040]圖1是本發(fā)明基于MapReduce的數(shù)據(jù)處理方法的流程示意圖;
[0041]圖2是本發(fā)明基于MapReduce的數(shù)據(jù)處理客戶端的結(jié)構(gòu)示意圖;
[0042]圖3是本發(fā)明基于MapReduce的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0043]以下將結(jié)合附圖及實(shí)施例來詳細(xì)說明本發(fā)明的實(shí)施方式,借此對本發(fā)明如何應(yīng)用技術(shù)手段來解決技術(shù)問題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過程能充分理解并據(jù)以實(shí)施。需要說明的是,只要不構(gòu)成沖突,本發(fā)明中的各個實(shí)施例以及各實(shí)施例中的各個特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。
[0044]另外,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0045]一般來說,Map-Reduce的處理過程主要涉及以下四個部分/模塊:
[0046]客戶端Client:用于提交Map-reduce任務(wù)job ;
[0047]JobTracker:協(xié)調(diào)整個job的運(yùn)行,其為一個Java進(jìn)程,其main class為JobTracker ;TaskTracker:運(yùn)行此 job 的 task,處理 input split,其為一個 Java 進(jìn)程,其main class為TaskTracker ;HDFS:hadoop分布式文件系統(tǒng),用于在各個進(jìn)程間共享Job相關(guān)的文件。
[0048]本發(fā)明主要針對客戶端Client進(jìn)行改進(jìn),而對其他部分不進(jìn)行改造,具體來說,如圖1所示,所述基于MapReduce的數(shù)據(jù)處理方法,包括:
[0049]步驟1:客戶端查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,所述多個文件夾中存儲著需要處理的數(shù)據(jù)文件;
[0050]步驟2:遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序中,直至讀取完所有的數(shù)據(jù)文件。
[0051]其中,由Map程序依次對所述數(shù)據(jù)文件進(jìn)行map計算,map計算后的結(jié)果再輸入到reduce程序中,直接最終輸入最后結(jié)果。
[0052]在實(shí)施例中,客戶端獲取所述多個文件夾的路徑信息,由此,在步驟2中,可以根據(jù)所述多個路徑信息遍歷所述多個文件夾。
[0053]一般地,多個文件夾按照預(yù)設(shè)的命名規(guī)則進(jìn)行命名,通常多采取按照日期的方式,由此,所述Map程序依次遍歷所述多個文件夾,包括:
[0054]獲取文件夾的最小命名和文件夾的最大命名,通過循環(huán)調(diào)用的依次遍歷所述多個文件夾。
[0055]本發(fā)明采取了上述方案以后,由于客戶端在生成任務(wù)的時候,能夠多次遍歷文件夾從而讀取數(shù)據(jù),不需要和現(xiàn)有技術(shù)那樣必須要先將數(shù)據(jù)預(yù)處理到同一個文件夾下,由此,該方法計算效率較高。
[0056]具體來說,在實(shí)施例中,主要是在任務(wù)的開始端加入一個循環(huán)處理層,將輸入的路徑作為循環(huán)處理層的輸入?yún)?shù),由此,循環(huán)處理層會通過多次迭代生成不同的任務(wù)進(jìn)入Map段,最終的結(jié)果通過一個Reduce階段進(jìn)行輸出。
[0057]例如,在任務(wù)初始階段調(diào)用FileInputFormat.addlnputPath (job, new Path ())方法時,將單獨(dú)調(diào)用的模式通過循環(huán)迭代層生成多個文件夾并且逐級調(diào)用該方法,然后完成調(diào)用后啟動一個Job進(jìn)行執(zhí)行,且該job結(jié)束后會將結(jié)果寫入緩存,并開始執(zhí)行下一個輸入文件夾,達(dá)到循環(huán)執(zhí)行的目的。通過此方案可講MapReduce的one-1n-one_out的模式調(diào)整為Multiple-1n-one-out的模式,提高了執(zhí)行效率。
[0058]例如:當(dāng)輸入的文件夾有一定的規(guī)律性,如下,并且每個文件夾下面的數(shù)據(jù)量都很大時,采用將所有文件轉(zhuǎn)移的處理方式會對網(wǎng)絡(luò)和硬盤造成一定的壓力,在處理效率上也有一定的消耗。
[0059]`
【權(quán)利要求】
1.一種基于MapReduce的數(shù)據(jù)處理方法,其特征在于,包括: 客戶端查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,所述多個文件夾中存儲著需要處理的數(shù)據(jù)文件; 遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序中,直至讀取完所有的數(shù)據(jù)文件,由Map程序依次對所述數(shù)據(jù)文件進(jìn)行map計算。
2.根據(jù)權(quán)利要求1所述的基于MapReduce的數(shù)據(jù)處理方法,其特征在于,進(jìn)一步還包括: 獲取所述多個文件夾的路徑信息,根據(jù)所述多個路徑信息遍歷所述多個文件夾。
3.根據(jù)權(quán)利要求1或2所述的基于MapReduce的數(shù)據(jù)處理方法,其特征在于,所述多個文件夾按照預(yù)設(shè)的命名規(guī)則進(jìn)行命名,所述Map程序依次遍歷所述多個文件夾,包括: 獲取文件夾的最小命名和文件夾的最大命名,通過循環(huán)調(diào)用的依次遍歷所述多個文件夾。
4.根據(jù)權(quán)利要求1所述的基于MapReduce的數(shù)據(jù)處理方法,其特征在于,Map程序依次對所述數(shù)據(jù)文件進(jìn)行map計算后, 輸出的結(jié)果送入Reduce程序進(jìn)行reduce計算。
5.—種基于MapReduce的數(shù)據(jù)處理客戶端,其特征在于,包括: 查詢單元,用于查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,且每一個文件夾中都存儲著需要處理的數(shù)據(jù)文件; 任務(wù)生成單元,用于遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序,直至讀取完所有的數(shù)據(jù)文件。
6.根據(jù)權(quán)利要求5所述的基于MapReduce的數(shù)據(jù)處理客戶端,其特征在于,進(jìn)一步包括: 文件夾操作單元,用于獲取所述多個文件夾的路徑信息;所述任務(wù)生成單元,進(jìn)一步用于根據(jù)所述路徑信息依次遍歷所述多個文件夾。
7.根據(jù)權(quán)利要求5或6所述的基于MapReduce的數(shù)據(jù)處理客戶端,其特征在于,所述多個文件夾按照預(yù)設(shè)的命名規(guī)則進(jìn)行命名; 其中,所述任務(wù)生成單元,進(jìn)一步獲取文件夾的最小命名和文件夾的最大命名,通過循環(huán)調(diào)用依次遍歷所述多個文件夾。
8.一種基于MapReduce的數(shù)據(jù)處理系統(tǒng),其特征在于,包括: 客戶端,包括: 查詢單元,用于查詢并獲取本次MapReduce計算需要處理的多個文件夾信息,其中,且每一個文件夾中都存儲著需要處理的數(shù)據(jù)文件; 任務(wù)生成單元,用于遍歷所述多個文件夾,根據(jù)所述多個文件夾的數(shù)據(jù)文件生成不同的任務(wù),并依此送入MapReduce中的Map程序,直至讀取完所有的數(shù)據(jù)文件; MapReduce裝置,包括: Map單元,用于依次對所述數(shù)據(jù)文件進(jìn)行map計算;Reduce單元,用于對map后的結(jié)果進(jìn)行reduce計算,并輸出結(jié)果。
9.根據(jù)權(quán)利要求8所述的基于MapReduce的數(shù)據(jù)處理系統(tǒng),其特征在于,所述客戶端進(jìn)一步包括:文件夾操作單元,用于獲取所述多個文件夾的路徑信息; 所述任務(wù)生成單元,進(jìn)一步用于根據(jù)所述路徑信息依次遍歷所述多個文件夾。
10.根據(jù)權(quán)利要求8或9所述的基于MapReduce的數(shù)據(jù)處理系統(tǒng),其特征在于,所述多個文件夾按照預(yù)設(shè)的命名規(guī)則進(jìn)行命名; 其中,所述客戶端中,所述任務(wù)生成單元,進(jìn)一步獲取文件夾的最小命名和文件夾的最大命名,通過循環(huán)調(diào)用依次遍歷所述多個文件夾。
【文檔編號】G06F9/44GK103617033SQ201310598175
【公開日】2014年3月5日 申請日期:2013年11月22日 優(yōu)先權(quán)日:2013年11月22日
【發(fā)明者】王函, 王瑋, 吳遠(yuǎn)青, 潘騰, 郭偉, 王旭東 申請人:北京掌闊移動傳媒科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
察隅县| 和平区| 永善县| 乌海市| 安徽省| 神池县| 张北县| 涞源县| 修文县| 高邮市| 剑阁县| 会同县| 集贤县| 集安市| 梁平县| 梓潼县| 新源县| 舞阳县| 阳泉市| 萍乡市| 江达县| 始兴县| 手机| 綦江县| 巴中市| 姚安县| 四平市| 玛曲县| 凌云县| 涟源市| 固镇县| 潼南县| 合山市| 沙田区| 建始县| 韶山市| 南康市| 安丘市| 鹤峰县| 莲花县| 大厂|