Rar格式的壓縮文件的處理方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種RAR格式的壓縮文件的處理方法和裝置。該RAR格式的壓縮文件的處理方法包括確定待處理的RAR格式的壓縮文件;獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù);通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件;獲取解壓后文件的存儲(chǔ)路徑;通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果。通過(guò)本發(fā)明,解決了現(xiàn)有技術(shù)中的Hadoop無(wú)法讀取分析RAR格式的壓縮文件的問題。
【專利說(shuō)明】RAR格式的壓縮文件的處理方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種RAR格式的壓縮文件的處理方法和裝置。
【背景技術(shù)】
[0002]日常實(shí)際中對(duì)日志數(shù)據(jù)的分析通常需要利用Hadoop進(jìn)行,其中,Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的開源的軟件框架,Hadoop作為分布式大數(shù)據(jù)的計(jì)算平臺(tái)主要包括兩部分,分布式文件系統(tǒng)(Hadoop Distributed File System,簡(jiǎn)稱為HDFS)和分布式計(jì)算框MapReduce。HDFS可以創(chuàng)建、刪除、移動(dòng)或者重命名文件,具有高容錯(cuò)性、易擴(kuò)展性等特點(diǎn)。MapReduce包含映射(Map)和合并(Reduce)兩部分,數(shù)據(jù)分析一般在Map中進(jìn)行,分析結(jié)果通過(guò)Reduce進(jìn)行合并后輸出。利用Hadoop讀取文件的過(guò)程如圖1所示,其中,圖1是根據(jù)現(xiàn)有技術(shù)的Hadoop讀取文件的流程圖,通過(guò)輸入分割函數(shù)InputFormat把存儲(chǔ)在HDFS中的文件數(shù)據(jù)進(jìn)行分割,生成多個(gè)文件數(shù)據(jù)片段Splits,通過(guò)讀取函數(shù)RecordReader讀取多個(gè)Splits,然后把讀取結(jié)果作為Map的輸入?yún)?shù),Map對(duì)讀取結(jié)果進(jìn)行分析處理,將數(shù)據(jù)處理結(jié)果通過(guò)Reduce進(jìn)行合并后輸出,利用輸出函數(shù)OutputFormat將輸出結(jié)果存入HDFS 中 ο
[0003]但是,隨著業(yè)務(wù)量地不斷增長(zhǎng),服務(wù)器每天產(chǎn)生的日志數(shù)據(jù)量快速增加。為了提高計(jì)算機(jī)系統(tǒng)的空間利用率,通常需要將日志數(shù)據(jù)進(jìn)行壓縮保存?,F(xiàn)有技術(shù)中Hadoop可以讀取的壓縮文件的格式有g(shù)zip,bzip,lzo, snappy等,但不支持RAR格式,即Hadoop無(wú)法讀取RAR格式的壓縮文件。RAR是一種常見的壓縮格式,具有壓縮比例高,壓縮速度快等優(yōu)點(diǎn),而且HDFS中的文件大多采用RAR格式進(jìn)行文件的壓縮,現(xiàn)有技術(shù)中Hadoop無(wú)法讀取RAR格式的壓縮文件,將會(huì)給數(shù)據(jù)處理帶來(lái)很多麻煩,嚴(yán)重影響數(shù)據(jù)處理效率。
[0004]針對(duì)現(xiàn)有技術(shù)中的Hadoop無(wú)法讀取分析RAR格式的壓縮文件的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種RAR格式的壓縮文件的處理方法和裝置,以解決現(xiàn)有技術(shù)中的Hadoop無(wú)法讀取分析RAR格式的壓縮文件的問題。
[0006]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種RAR格式的壓縮文件的處理方法。
[0007]該RAR格式的壓縮文件的處理方法包括:確定待處理的RAR格式的壓縮文件;獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù);通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件;獲取解壓后文件的存儲(chǔ)路徑;通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果。
[0008]進(jìn)一步地,通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓包括,得到解壓文件包括:在文件加載類函數(shù)中執(zhí)行調(diào)用文件解壓類函數(shù);在文件解壓類函數(shù)中執(zhí)行調(diào)用解壓包中的解壓函數(shù),得到解壓文件,其中,解壓包中存儲(chǔ)有對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓的解壓函數(shù)。
[0009]進(jìn)一步地,通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果包括:獲取文件解壓類函數(shù)的返回值,其中,文件解壓類函數(shù)的返回值為解壓文件的存儲(chǔ)路徑對(duì)應(yīng)的字符串;將文件解壓類函數(shù)的返回值發(fā)送至數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到處理結(jié)果。
[0010]進(jìn)一步地,將文件解壓類函數(shù)的返回值發(fā)送至數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到處理結(jié)果包括:將文件解壓類函數(shù)的返回值轉(zhuǎn)化為路徑類地址;獲取路徑類地址處存儲(chǔ)的解壓文件;數(shù)據(jù)分析函數(shù)對(duì)解壓文件進(jìn)行分析處理,得到處理結(jié)果。
[0011 ] 進(jìn)一步地,在數(shù)據(jù)分析函數(shù)對(duì)解壓文件進(jìn)行分析處理,得到處理結(jié)果之后,方法還包括:刪除路徑類地址處存儲(chǔ)的解壓文件;將處理結(jié)果存儲(chǔ)在預(yù)設(shè)存儲(chǔ)路徑對(duì)應(yīng)的地址。
[0012]進(jìn)一步地,該RAR格式的壓縮文件的處理方法同時(shí)啟動(dòng)多個(gè)進(jìn)程,其中,每個(gè)進(jìn)程中數(shù)據(jù)分析函數(shù)對(duì)解壓文件執(zhí)行分析處理,在數(shù)據(jù)分析函數(shù)對(duì)解壓文件進(jìn)行分析處理,得到處理結(jié)果之后,該RAR格式的壓縮文件的處理方法還包括:將多個(gè)進(jìn)程中的數(shù)據(jù)分析函數(shù)分析處理后得到的多個(gè)處理結(jié)果進(jìn)行合并,得到合并后的處理結(jié)果;輸出合并后的處理結(jié)果。
[0013]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種RAR格式的壓縮文件的處理裝置。
[0014]該RAR格式的壓縮文件的處理裝置包括:確定模塊,用于確定待處理的RAR格式的壓縮文件;第一獲取模塊,用于獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù);解壓模塊,用于通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件;第二獲取模塊,用于獲取解壓文件的存儲(chǔ)路徑;處理模塊,用于通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果。
[0015]進(jìn)一步地,解壓模塊包括:第一調(diào)用模塊,用于在文件加載類函數(shù)中執(zhí)行調(diào)用文件解壓類函數(shù);第二調(diào)用模塊,用于在文件解壓類函數(shù)中執(zhí)行調(diào)用解壓包中的解壓函數(shù),得到解壓文件,其中,解壓包中存儲(chǔ)有對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓的解壓函數(shù)。
[0016]進(jìn)一步地,處理模塊包括:第二獲取子模塊,用于獲取文件解壓類函數(shù)的返回值,其中,文件解壓類函數(shù)的返回值為解壓文件的存儲(chǔ)路徑對(duì)應(yīng)的字符串;第一處理子模塊,用于將文件解壓類函數(shù)的返回值發(fā)送至數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到處理結(jié)果,其中,第一處理子模塊包括:轉(zhuǎn)化模塊,用于將文件解壓類函數(shù)的返回值轉(zhuǎn)化為路徑類地址;第三獲取子模塊,用于獲取路徑類地址處存儲(chǔ)的解壓文件;第二處理子模塊,用于數(shù)據(jù)分析函數(shù)對(duì)解壓文件進(jìn)行分析處理,得到處理結(jié)果。
[0017]進(jìn)一步地,該RAR格式的壓縮文件的處理裝置還包括:刪除模塊,用于刪除路徑類地址處存儲(chǔ)的解壓文件;存儲(chǔ)模塊,用于將處理結(jié)果存儲(chǔ)在預(yù)設(shè)存儲(chǔ)路徑對(duì)應(yīng)的地址。
[0018]通過(guò)本發(fā)明,采用確定待處理的RAR格式的壓縮文件;獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù);通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件;獲取解壓文件的存儲(chǔ)路徑;通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果,解決了現(xiàn)有技術(shù)中的Hadoop無(wú)法讀取分析RAR格式的壓縮文件的問題。該發(fā)明在輸入分割函數(shù)和讀取函數(shù)的基礎(chǔ)上創(chuàng)建了文件加載類函數(shù)和文件解壓類函數(shù),利用文件解壓類函數(shù)讀取HDFS中的RAR格式的壓縮文件并將其進(jìn)行解壓,得到解壓文件,然后將解壓文件發(fā)送到Map中進(jìn)行分析處理,得到處理結(jié)果,最后將處理結(jié)果存儲(chǔ)在HDFS中。該發(fā)明中Hadoop可以同時(shí)啟動(dòng)多個(gè)Map任務(wù),每個(gè)Map對(duì)應(yīng)一個(gè)文件解壓類函數(shù),每個(gè)文件解壓類函數(shù)讀取一個(gè)RAR格式的壓縮文件,這樣實(shí)現(xiàn)了多個(gè)待處理RAR格式的壓縮文件的同時(shí)處理,提高了執(zhí)行效率。此外,該發(fā)明在Map執(zhí)行完分析處理得到處理結(jié)果后將暫存的解壓文件刪除,節(jié)約了系統(tǒng)空間。
【專利附圖】
【附圖說(shuō)明】
[0019]構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0020]圖1是根據(jù)現(xiàn)有技術(shù)的Hadoop讀取文件的流程圖;
[0021]圖2是根據(jù)本發(fā)明實(shí)施例的RAR格式的壓縮文件的處理方法的流程圖;
[0022]圖3是根據(jù)本發(fā)明實(shí)施例的Hadoop讀取分析RAR格式的壓縮文件流程圖;以及
[0023]圖4是根據(jù)本發(fā)明實(shí)施例的RAR格式的壓縮文件的處理裝置的示意圖。
【具體實(shí)施方式】
[0024]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0025]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
[0026]需要說(shuō)明的是,本申請(qǐng)的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0027]本發(fā)明旨在提供一種RAR格式的壓縮文件的處理方法和裝置。
[0028]圖2是根據(jù)本發(fā)明實(shí)施例的RAR格式的壓縮文件的處理方法的流程圖。如圖2所示,該RAR格式的壓縮文件的處理方法包括如下的步驟SlOl至步驟S105:
[0029]步驟S101,確定待處理的RAR格式的壓縮文件。
[0030]HDFS中存儲(chǔ)的RAR格式的壓縮文件通常會(huì)有很多個(gè),該實(shí)施例的RAR格式的壓縮文件的處理方法可以對(duì)一個(gè)RAR格式的壓縮文件進(jìn)行讀取處理,也可以對(duì)多個(gè)RAR格式的壓縮文件進(jìn)行讀取處理。確定待處理的RAR格式的壓縮文件的個(gè)數(shù)可以根據(jù)具體的分析需求進(jìn)行確定。優(yōu)選地,該實(shí)施例的RAR格式的壓縮文件的處理方法確定待處理的RAR格式的壓縮文件的個(gè)數(shù)為多個(gè),相對(duì)于逐個(gè)讀取RAR格式的壓縮文件后進(jìn)行單獨(dú)處理,該實(shí)施例的RAR格式的壓縮文件的處理方法極大地提高了處理效率。
[0031]優(yōu)選地,在確定待處理的RAR格式的壓縮文件的同時(shí)還包括:獲取待處理的RAR格式的壓縮文件的存儲(chǔ)路徑,獲取該存儲(chǔ)路徑的目的是準(zhǔn)確獲取該存儲(chǔ)路徑對(duì)應(yīng)的地址處存儲(chǔ)的待處理的RAR格式的壓縮文件。
[0032]步驟S102,獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù)。
[0033]對(duì)待處理的RAR格式的壓縮文件進(jìn)行相關(guān)的處理分析需要借助于類函數(shù),比如,讀取待處理的RAR格式的壓縮文件需要用到文件加載函數(shù),對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓需要用到文件解壓函數(shù)等。該實(shí)施例的RAR格式的壓縮文件的處理方法在繼承Hadoop框架中的針對(duì)普通文件的輸入分割函數(shù)InputFormat的基礎(chǔ)上創(chuàng)建了針對(duì)RAR格式的壓縮文件的文件加載類函數(shù)RarInputFormat,在繼承Hadoop框架中的針對(duì)普通文件的讀取函數(shù)RecordReader的基礎(chǔ)上創(chuàng)建了針對(duì)RAR格式的壓縮文件的文件解壓類函數(shù)RarRecordReader。RarInputFormat可以從HDFS中讀取一個(gè)或者多個(gè)RAR格式的壓縮文件,并將該一個(gè)或者多個(gè)RAR格式的壓縮文件進(jìn)行數(shù)據(jù)分割,生成若干個(gè)數(shù)據(jù)文件片段。RarRecordReader讀取這個(gè)數(shù)據(jù)文件片段,并將這些數(shù)據(jù)文件片段進(jìn)行解壓,生成解壓文件,并獲取存儲(chǔ)解壓文件的存儲(chǔ)路徑,將該存儲(chǔ)解壓文件的存儲(chǔ)路徑作為參數(shù)傳遞給數(shù)據(jù)分析函數(shù)Map。通過(guò)這兩個(gè)類函數(shù)可以實(shí)現(xiàn)對(duì)RAR格式的壓縮文件的讀取和解壓。
[0034]步驟S103,通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件。
[0035]在文件加載類函數(shù)RarInputFormat中調(diào)用文件解壓類函數(shù)RarRecordReader對(duì)RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件。其中,在文件解壓類函數(shù)RarRecordReader中對(duì)RAR格式的壓縮文件進(jìn)行解壓具體包括:在文件加載類函數(shù)RarInputFormat中執(zhí)行調(diào)用文件解壓類函數(shù)RarRecordReader ;在文件解壓類函數(shù)RarRecordReader中執(zhí)行調(diào)用解壓包中的解壓函數(shù),得到解壓文件,其中,解壓包中存儲(chǔ)有對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓的解壓函數(shù)。該實(shí)施例中的解壓包優(yōu)選為java-unrar-0.5.jar包,該jar包可以在 https://c 1 jars, org/org.c 1 jar s.bonega/ java-unrar 下載。在文件解壓類函數(shù)RarRecordReader中調(diào)用該jar包中的解壓函數(shù)對(duì)RAR格式的壓縮文件進(jìn)行解壓。該實(shí)施例的RAR格式的壓縮文件的處理方法對(duì)RAR格式的壓縮文件進(jìn)行解壓,方便對(duì)該文件的內(nèi)容進(jìn)行讀取或者處理。
[0036]步驟S104,獲取解壓后文件的存儲(chǔ)路徑。
[0037]在通過(guò)在文件加載類函數(shù)RarInputFormat中調(diào)用文件解壓類函數(shù)RarRecordReader對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓之后,得到解壓文件。優(yōu)選地,解壓文件將會(huì)暫時(shí)存儲(chǔ)在HDFS中。解壓文件在HDFS中的存儲(chǔ)路徑將會(huì)作為文件解壓函數(shù)RarRecordReader的返回值Value傳遞到數(shù)據(jù)分析函數(shù)Map中。將解壓文件在HDFS中的存儲(chǔ)路徑作為參數(shù)輸入到數(shù)據(jù)分析函數(shù)Map中,有利于數(shù)據(jù)分析函數(shù)Map根據(jù)該存儲(chǔ)路徑獲取RAR格式的壓縮文件解壓之后對(duì)應(yīng)的解壓文件,方便數(shù)據(jù)分析函數(shù)Map對(duì)該解壓文件進(jìn)行分析處理。
[0038]步驟S105,通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果。
[0039]在數(shù)據(jù)分析函數(shù)Map收到文件解壓函數(shù)RarRecordReader的返回值Value之后,該數(shù)據(jù)分析函數(shù)會(huì)對(duì)解壓文件進(jìn)行分析處理。優(yōu)選地,該實(shí)施例的RAR格式的壓縮文件的處理方法通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果具體可以包括:獲取文件解壓類函數(shù)的返回值,其中,文件解壓類函數(shù)的返回值為解壓文件的存儲(chǔ)路徑對(duì)應(yīng)的字符串;將文件解壓類函數(shù)的返回值發(fā)送至數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到處理結(jié)果。
[0040]具體地,將文件解壓類函數(shù)的返回值發(fā)送至數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到處理結(jié)果可以包括:通過(guò)Hadoop中的路徑類函數(shù)Path將文件解壓類函數(shù)的返回值轉(zhuǎn)化為路徑類地址;通過(guò)數(shù)據(jù)獲取函數(shù)FSDateInputStrearn獲取路徑類函數(shù)Path指向的路徑類地址處存儲(chǔ)的解壓文件;數(shù)據(jù)分析函數(shù)通過(guò)業(yè)務(wù)分析邏輯完成對(duì)解壓文件的分析處理,并得到處理結(jié)果。
[0041]優(yōu)選地,在數(shù)據(jù)分析函數(shù)對(duì)解壓文件進(jìn)行分析處理,得到處理結(jié)果之后,該實(shí)施例的RAR格式的壓縮文件的處理方法還包括:刪除路徑類函數(shù)Path指向的路徑類地址處暫時(shí)存儲(chǔ)在HDFS中的解壓文件,釋放磁盤空間;并通過(guò)輸出函數(shù)OutputFormat將處理結(jié)果進(jìn)行輸出,存儲(chǔ)在預(yù)設(shè)存儲(chǔ)路徑對(duì)應(yīng)的地址。該實(shí)施例的RAR格式的壓縮文件的處理方法將暫時(shí)存儲(chǔ)在HDFS中的解壓文件進(jìn)行刪除,有利于釋放系統(tǒng)內(nèi)存空間。
[0042]優(yōu)選地,該實(shí)施例的RAR格式的壓縮文件的處理方法可以同時(shí)啟動(dòng)多個(gè)進(jìn)程,其中,每個(gè)進(jìn)程中數(shù)據(jù)分析函數(shù)Map對(duì)解壓文件執(zhí)行分析處理,在數(shù)據(jù)分析函數(shù)Map對(duì)解壓文件進(jìn)行分析處理,得到處理結(jié)果之后,該實(shí)施例的RAR格式的壓縮文件的處理方法還可以包括:將多個(gè)進(jìn)程中的數(shù)據(jù)分析函數(shù)Map分析處理后得到的多個(gè)處理結(jié)果通過(guò)合并函數(shù)Reduce進(jìn)行合并,得到合并后的處理結(jié)果;最后通過(guò)數(shù)據(jù)函數(shù)OutputFormat輸出合并后的處理結(jié)果。該實(shí)施例的RAR格式的壓縮文件的處理方法同時(shí)啟動(dòng)多個(gè)Map任務(wù),實(shí)現(xiàn)了對(duì)多個(gè)待處理RAR格式的壓縮文件的同時(shí)處理,提高了執(zhí)行效率。圖3是根據(jù)本發(fā)明實(shí)施例的Hadoop讀取分析RAR格式的壓縮文件流程圖。
[0043]該實(shí)施例的RAR格式的壓縮文件的處理方法采用確定待處理的RAR格式的壓縮文件;獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù);通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件;獲取解壓后文件的存儲(chǔ)路徑;通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果,解決了現(xiàn)有技術(shù)中的Hadoop無(wú)法讀取分析RAR格式的壓縮文件的問題。同時(shí),該實(shí)施例的RAR格式的壓縮文件的處理方法同時(shí)啟動(dòng)多個(gè)Map任務(wù),實(shí)現(xiàn)了對(duì)多個(gè)待處理RAR格式的壓縮文件的同時(shí)處理,提高了執(zhí)行效率。而且,該實(shí)施例的RAR格式的壓縮文件的處理方法在Map執(zhí)行完分析處理得到處理結(jié)果后將暫存的解壓文件刪除,節(jié)約了系統(tǒng)空間。
[0044]從以上的描述中,可以看出,本發(fā)明實(shí)施例的RAR格式的壓縮文件的處理方法在輸入分割函數(shù)和讀取函數(shù)的基礎(chǔ)上創(chuàng)建了文件加載類函數(shù)和文件解壓類函數(shù),利用文件解壓類函數(shù)讀取HDFS中的RAR格式的壓縮文件并將其進(jìn)行解壓,得到解壓文件,然后將解壓文件發(fā)送到Map中進(jìn)行分析處理,得到處理結(jié)果,最后將處理結(jié)果存儲(chǔ)在HDFS中,解決了現(xiàn)有技術(shù)中的Hadoop無(wú)法讀取分析RAR格式的壓縮文件的問題。同時(shí),該發(fā)明的實(shí)施例中Hadoop可以同時(shí)啟動(dòng)多個(gè)Map任務(wù),每個(gè)Map對(duì)應(yīng)一個(gè)文件解壓類函數(shù),每個(gè)文件解壓類函數(shù)讀取一個(gè)RAR格式的壓縮文件,這樣實(shí)現(xiàn)了多個(gè)待處理RAR格式的壓縮文件的同時(shí)處理,提高了執(zhí)行效率。此外,該發(fā)明的實(shí)施例在Map執(zhí)行完分析處理得到處理結(jié)果后將暫存的解壓文件刪除,極大地節(jié)約了系統(tǒng)空間。
[0045]需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0046]本發(fā)明實(shí)施例還提供了一種RAR格式的壓縮文件的處理裝置。需要說(shuō)明的是,該RAR格式的壓縮文件的處理裝置可以用于執(zhí)行本發(fā)明實(shí)施例的RAR格式的壓縮文件的處理方法。
[0047]圖4是根據(jù)本發(fā)明實(shí)施例的RAR格式的壓縮文件的處理裝置的示意圖。如圖4所示,該RAR格式的壓縮文件的處理裝置包括:確定模塊10,第一獲取模塊20,解壓模塊30,第二獲取模塊40和處理模塊50。
[0048]確定模塊10,用于確定待處理的RAR格式的壓縮文件。
[0049]第一獲取模塊20,用于獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù)。
[0050]解壓模塊30,用于通過(guò)在文件加載類函數(shù)中調(diào)用文件解壓類函數(shù)對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件。
[0051]優(yōu)選地,解壓模塊30包括:第一調(diào)用模塊,用于在文件加載類函數(shù)中執(zhí)行調(diào)用文件解壓類函數(shù);第二調(diào)用模塊,用于在文件解壓類函數(shù)中執(zhí)行調(diào)用解壓包中的解壓函數(shù),得到解壓文件,其中,解壓包中存儲(chǔ)有對(duì)待處理的RAR格式的壓縮文件進(jìn)行解壓的解壓函數(shù)。
[0052]第二獲取模塊40,用于獲取解壓文件的存儲(chǔ)路徑。
[0053]處理模塊50,用于通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)解壓文件的分析處理,得到處理結(jié)果。
[0054]優(yōu)選地,處理模塊50包括:第二獲取子模塊,用于獲取文件解壓類函數(shù)的返回值,其中,文件解壓類函數(shù)的返回值為解壓文件的存儲(chǔ)路徑對(duì)應(yīng)的字符串;第一處理子模塊,用于將文件解壓類函數(shù)的返回值發(fā)送至數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到處理結(jié)果。
[0055]具體地,第一處理子模塊包括:轉(zhuǎn)化模塊,用于將文件解壓類函數(shù)的返回值轉(zhuǎn)化為路徑類地址;第三獲取子模塊,用于獲取路徑類地址處存儲(chǔ)的解壓文件;第二處理子模塊,用于數(shù)據(jù)分析函數(shù)對(duì)解壓文件進(jìn)行分析處理,得到處理結(jié)果。
[0056]優(yōu)選地,該實(shí)施例的RAR格式的壓縮文件的處理裝置還包括:刪除模塊,用于刪除路徑類地址處存儲(chǔ)的解壓文件;存儲(chǔ)模塊,用于將處理結(jié)果存儲(chǔ)在預(yù)設(shè)存儲(chǔ)路徑對(duì)應(yīng)的地址。
[0057]該實(shí)施例的RAR格式的壓縮文件的處理裝置包括確定模塊10,第一獲取模塊20,解壓模塊30,第二獲取模塊40和處理模塊50。通過(guò)該實(shí)施例的RAR格式的壓縮文件的處理裝置解決了現(xiàn)有技術(shù)中的Hadoop無(wú)法讀取分析RAR格式的壓縮文件的問題,同時(shí),通過(guò)對(duì)多個(gè)待處理的RAR格式的壓縮文件的同時(shí)讀取處理,提高了處理效率,通過(guò)刪除暫存的解壓文件,節(jié)約了系統(tǒng)空間。
[0058]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0059]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種RAR格式的壓縮文件的處理方法,其特征在于,包括: 確定待處理的RAR格式的壓縮文件; 獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù); 通過(guò)在所述文件加載類函數(shù)中調(diào)用所述文件解壓類函數(shù)對(duì)所述待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件; 獲取所述解壓文件的存儲(chǔ)路徑;以及 通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)所述解壓文件的分析處理,得到處理結(jié)果。
2.根據(jù)權(quán)利要求1所述的RAR格式的壓縮文件的處理方法,其特征在于,通過(guò)在所述文件加載類函數(shù)中調(diào)用所述文件解壓類函數(shù)對(duì)所述待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件包括: 在所述文件加載類函數(shù)中執(zhí)行調(diào)用所述文件解壓類函數(shù);以及在所述文件解壓類函數(shù)中執(zhí)行調(diào)用解壓包中的解壓函數(shù),得到所述解壓文件,其中,所述解壓包中存儲(chǔ)有對(duì)所述待處理的RAR格式的壓縮文件進(jìn)行解壓的解壓函數(shù)。
3.根據(jù)權(quán)利要求1所述的RAR格式的壓縮文件的處理方法,其特征在于,通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)所述解壓文件的分析處理,得到處理結(jié)果包括: 獲取所述文件解壓類函數(shù)的返回值,其中,所述文件解壓類函數(shù)的返回值為所述解壓文件的存儲(chǔ)路徑對(duì)應(yīng)的字符串;以及 將所述文件解壓類函數(shù)的返回值發(fā)送至所述數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到所述處理結(jié)果。
4.根據(jù)權(quán)利要求3所述的RAR格式的壓縮文件的處理方法,其特征在于,將所述文件解壓類函數(shù)的返回值發(fā)送至所述數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到所述處理結(jié)果包括: 將所述文件解壓類函數(shù)的返回值轉(zhuǎn)化為路徑類地址; 獲取所述路徑類地址處存儲(chǔ)的所述解壓文件;以及 所述數(shù)據(jù)分析函數(shù)對(duì)所述解壓文件進(jìn)行分析處理,得到所述處理結(jié)果。
5.根據(jù)權(quán)利要求4所述的RAR格式的壓縮文件的處理方法,其特征在于,在所述數(shù)據(jù)分析函數(shù)對(duì)所述解壓文件進(jìn)行分析處理,得到所述處理結(jié)果之后,所述方法還包括: 刪除所述路徑類地址處存儲(chǔ)的所述解壓文件;以及 將所述處理結(jié)果存儲(chǔ)在預(yù)設(shè)存儲(chǔ)路徑對(duì)應(yīng)的地址。
6.根據(jù)權(quán)利要求5所述的RAR格式的壓縮文件的處理方法,其特征在于,所述方法同時(shí)啟動(dòng)多個(gè)進(jìn)程,其中,每個(gè)進(jìn)程中所述數(shù)據(jù)分析函數(shù)對(duì)所述解壓文件執(zhí)行分析處理,在所述數(shù)據(jù)分析函數(shù)對(duì)所述解壓文件進(jìn)行分析處理,得到所述處理結(jié)果之后,所述方法還包括: 將多個(gè)進(jìn)程中的所述數(shù)據(jù)分析函數(shù)分析處理后得到的多個(gè)處理結(jié)果進(jìn)行合并,得到合并后的處理結(jié)果;以及 輸出所述合并后的處理結(jié)果。
7.—種RAR格式的壓縮文件的處理裝置,其特征在于,包括: 確定模塊,用于確定待處理的RAR格式的壓縮文件; 第一獲取模塊,用于獲取預(yù)先創(chuàng)建的文件加載類函數(shù)和文件解壓類函數(shù); 解壓模塊,用于通過(guò)在所述文件加載類函數(shù)中調(diào)用所述文件解壓類函數(shù)對(duì)所述待處理的RAR格式的壓縮文件進(jìn)行解壓,得到解壓文件; 第二獲取模塊,用于獲取所述解壓文件的存儲(chǔ)路徑;以及 處理模塊,用于通過(guò)數(shù)據(jù)分析函數(shù)執(zhí)行對(duì)所述解壓文件的分析處理,得到處理結(jié)果。
8.根據(jù)權(quán)利要求7所述的RAR格式的壓縮文件的處理裝置,其特征在于,所述解壓模塊包括: 第一調(diào)用模塊,用于在所述文件加載類函數(shù)中執(zhí)行調(diào)用所述文件解壓類函數(shù);以及第二調(diào)用模塊,用于在所述文件解壓類函數(shù)中執(zhí)行調(diào)用解壓包中的解壓函數(shù),得到所述解壓文件,其中,所述解壓包中存儲(chǔ)有對(duì)所述待處理的RAR格式的壓縮文件進(jìn)行解壓的解壓函數(shù)。
9.根據(jù)權(quán)利要求7所述的RAR格式的壓縮文件的處理裝置,其特征在于,所述處理模塊包括: 第二獲取子模塊,用于獲取所述文件解壓類函數(shù)的返回值,其中,所述文件解壓類函數(shù)的返回值為所述解壓文件的存儲(chǔ)路徑對(duì)應(yīng)的字符串; 第一處理子模塊,用于將所述文件解壓類函數(shù)的返回值發(fā)送至所述數(shù)據(jù)分析函數(shù)進(jìn)行分析處理,得到所述處理結(jié)果, 其中,所述第一處理子模塊包括: 轉(zhuǎn)化模塊,用于將所述文件解壓類函數(shù)的返回值轉(zhuǎn)化為路徑類地址; 第三獲取子模塊,用于獲取所述路徑類地址處存儲(chǔ)的所述解壓文件;以及 第二處理子模塊,用于所述數(shù)據(jù)分析函數(shù)對(duì)所述解壓文件進(jìn)行分析處理,得到所述處理結(jié)果。
10.根據(jù)權(quán)利要求9所述的RAR格式的壓縮文件的處理裝置,其特征在于,所述裝置還包括: 刪除模塊,用于刪除所述路徑類地址處存儲(chǔ)的所述解壓文件;以及 存儲(chǔ)模塊,用于將所述處理結(jié)果存儲(chǔ)在預(yù)設(shè)存儲(chǔ)路徑對(duì)應(yīng)的地址。
【文檔編號(hào)】G06F9/44GK104484174SQ201410773628
【公開日】2015年4月1日 申請(qǐng)日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】謝寧 申請(qǐng)人:北京國(guó)雙科技有限公司