本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種hadoop多管道數(shù)據(jù)處理分析方法。
背景技術(shù):
hadoop是一個能夠讓用戶輕松架構(gòu)和使用的分布式計算平臺。用戶可以輕松地在hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。hadoop主要有以下幾個優(yōu)點:
1、高可靠性。hadoop按位存儲和處理數(shù)據(jù)的能力值得人們信賴。
2、高擴(kuò)展性。hadoop是在可用的計算機(jī)集簇間分配數(shù)據(jù)并完成計算任務(wù)的,這些集簇可以方便地擴(kuò)展到數(shù)以干計的節(jié)點中。
3、高效性。hadoop能夠在節(jié)點之間動態(tài)地移動數(shù)據(jù),并保證各個節(jié)點的動態(tài)平衡,因此處理速度非???。
4、高容錯性。hadoop能夠自動保存數(shù)據(jù)的多個副本,并且能夠自動將失敗的任務(wù)重新分配。
5、低成本。與一體機(jī)、商用數(shù)據(jù)倉庫以及qlikview、yonghongz-suite等數(shù)據(jù)集市相比,hadoop是開源的,項目的軟件成本因此會大大降低。
hadoop設(shè)計之初的目標(biāo)就定位于高可靠性、高可拓展性、高容錯性和高效性,正是這些設(shè)計上與生俱來的優(yōu)點,才使得hadoop一出現(xiàn)就受到眾多大公司的青睞,同時也引起了研究界的普遍關(guān)注。到目前為止,hadoop技術(shù)在互聯(lián)網(wǎng)領(lǐng)域已經(jīng)得到了廣泛的運(yùn)用,例如,yahoo使用4000個節(jié)點的hadoop集群來支持廣告系統(tǒng)和web搜索的研究;facebook使用1000個節(jié)點的集群運(yùn)行hadoop,存儲日志數(shù)據(jù),支持其上的數(shù)據(jù)分析和機(jī)器學(xué)習(xí);百度用hadoop處理每周200tb的數(shù)據(jù),從而進(jìn)行搜索日志分析和網(wǎng)頁數(shù)據(jù)挖掘工作;中國移動研究院基于hadoop開發(fā)了″大云″(bigcloud)系統(tǒng),不但用于相關(guān)數(shù)據(jù)分析,還對外提供服務(wù);淘寶的hadoop系統(tǒng)用于存儲并處理電子商務(wù)交易的相關(guān)數(shù)據(jù)。國內(nèi)的高校和科研院所基于hadoop在數(shù)據(jù)存儲、資源管理、作業(yè)調(diào)度、性能優(yōu)化、系統(tǒng)高可用性和安全性方面進(jìn)行研究,相關(guān)研究成果多以開源形式貢獻(xiàn)給hadoop社區(qū)。
使用mapreduce編程模型是處理hadoop多管道數(shù)據(jù)的一種方式。雖然采用mapreduce編程模型處理hadoop多管道數(shù)據(jù)能夠獲得計算優(yōu)勢,但是并沒有充分考慮分布式程序的有效運(yùn)行。mapreduce編程模型在處理以小的數(shù)據(jù)塊所存儲的數(shù)據(jù)文件時,會啟動更多的映射(map)任務(wù),但也會造成較大的開銷。當(dāng)采用大塊時,可以減少客戶端與主服務(wù)器通訊的需求,也會降低主服務(wù)器需要保存的元數(shù)據(jù)的空間,卻不能有效地利用可用的并行計算資源。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種hadoop多管道數(shù)據(jù)處理分析方法,該方法利用mapreduce編程模型來處理海量數(shù)據(jù),在設(shè)計時只需考慮事務(wù)的分配策略與mapreduce函數(shù)對的設(shè)計,而對于其他并行計算中的復(fù)雜問題,如工作調(diào)動、容錯處理、分布式存儲、網(wǎng)絡(luò)通信等則交給hadoop平臺進(jìn)行處理。因此,能夠改善大數(shù)據(jù)的更新分析處理效率。
為實現(xiàn)上述目的,本發(fā)明提供一種hadoop多管道數(shù)據(jù)處理分析方法,該方法利用服務(wù)器中的mapreduce編程模型來處理海量數(shù)據(jù),所述的服務(wù)器包括外部設(shè)備、處理單元、總線、網(wǎng)絡(luò)適配器、i/o接口和系統(tǒng)存儲器,處理單元、網(wǎng)絡(luò)適配器、i/o接口和系統(tǒng)存儲器均通過總線連接并通信,外部設(shè)備與i/o接口連接,所述的mapreduce編程模型設(shè)置在服務(wù)器的系統(tǒng)存儲器中;該方法包括以下步驟:
第一、利用外部設(shè)備輸入大數(shù)據(jù)文件,mapreduce編程模型將輸入的大數(shù)據(jù)文件分成若干獨(dú)立的數(shù)據(jù),并在不同的機(jī)器上進(jìn)行程序數(shù)據(jù)的備份;
第二、分配事務(wù),mapreduce編程模型中的主程序節(jié)點分配子事務(wù),并將子事務(wù)通過網(wǎng)絡(luò)適配器遞交給空閑的工作機(jī)節(jié)點中;
第三、生成鍵/值對,被分配了子事務(wù)的工作機(jī)節(jié)點讀取輸入的大數(shù)據(jù)文件,從中解析出鍵/值對,并調(diào)用用戶編寫的map函數(shù)處理鍵/值對,并生成中間鍵/值對;
第四、發(fā)送消息,分區(qū)函數(shù)將所述的中間鍵/值對分成若干區(qū),將各個區(qū)在磁盤中的位置信息發(fā)送給主程序,然后轉(zhuǎn)發(fā)給reduce子事務(wù)節(jié)點;
第五、調(diào)用中間數(shù)據(jù),reduce子事務(wù)節(jié)點獲取由主程序轉(zhuǎn)發(fā)的子事務(wù)后,根據(jù)位置信息調(diào)用磁盤上的中間數(shù)據(jù),并對這些中間數(shù)據(jù)按照key值進(jìn)行排序,相同的key值進(jìn)行合并操作;
第六、執(zhí)行reduce函數(shù),reduce子事務(wù)節(jié)點遍歷排序后的中間數(shù)據(jù),并將數(shù)據(jù)傳遞給用戶定義的reduce函數(shù),執(zhí)行結(jié)果將被輸出到最終的輸出文件中;
第七、輸出結(jié)果,當(dāng)所有的reduce子事務(wù)完成后,主程序節(jié)點將所有數(shù)據(jù)返回給用戶程序,用戶程序合并數(shù)據(jù)并輸出最終數(shù)據(jù)。
所述的外部設(shè)備包括u盤或光驅(qū)。
所述的系統(tǒng)存儲器包括存儲系統(tǒng)、ram、高速緩存和程序模塊,所述的mapreduce編程模型設(shè)置在程序模塊中。
所述的程序模塊中還存儲有操作系統(tǒng)、一個或多個應(yīng)用程序以及程序數(shù)據(jù)。
所述的總線包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)總線、微通道體系結(jié)構(gòu)總線、增強(qiáng)型isa總線、視頻電子標(biāo)準(zhǔn)協(xié)會局域總線以及外圍組件互聯(lián)總線。
所述的服務(wù)器能夠通過i/o接口與網(wǎng)卡或調(diào)制解調(diào)器進(jìn)行通信。
所述的服務(wù)器能夠通過網(wǎng)絡(luò)適配器與一個或多個局域網(wǎng)、廣域網(wǎng)和/或公共網(wǎng)絡(luò)通信。
本發(fā)明具有如下優(yōu)點:本發(fā)明所述的hadoop多管道數(shù)據(jù)處理分析方法與現(xiàn)有技術(shù)相比,能夠提高數(shù)據(jù)分析處理的執(zhí)行效率,特別是在大數(shù)據(jù)集的情況下效果尤為明顯。
附圖說明
圖1是本發(fā)明所述的服務(wù)器的整體結(jié)構(gòu)示意圖。
具體實施方式
以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
本發(fā)明提供一種hadoop多管道數(shù)據(jù)處理分析方法,該方法利用服務(wù)器中的mapreduce編程模型來處理海量數(shù)據(jù),如圖1所示,所述的服務(wù)器包括外部設(shè)備14、處理單元16、總線18、網(wǎng)絡(luò)適配器20、i/o接口22和系統(tǒng)存儲器28,處理單元16、網(wǎng)絡(luò)適配器20、i/o接口22和系統(tǒng)存儲器28均通過總線18連接,外部設(shè)備14與i/o接口22連接,所述的mapreduce編程模型設(shè)置在服務(wù)器的系統(tǒng)存儲器中;該方法包括以下步驟:
第一、利用外部設(shè)備14輸入大數(shù)據(jù)文件,mapreduce編程模型將輸入的大數(shù)據(jù)文件分成若干獨(dú)立的數(shù)據(jù),并在不同的機(jī)器上進(jìn)行程序數(shù)據(jù)的備份;
第二、分配事務(wù),mapreduce編程模型中的主程序節(jié)點分配子事務(wù),并將子事務(wù)通過網(wǎng)絡(luò)適配器20遞交給空閑的工作機(jī)節(jié)點中;
第三、生成鍵/值對,被分配了子事務(wù)的工作機(jī)節(jié)點讀取輸入的大數(shù)據(jù)文件,從中解析出鍵/值對,并調(diào)用用戶編寫的map函數(shù)處理鍵/值對,并生成中間鍵/值對;
第四、發(fā)送消息,分區(qū)函數(shù)將所述的中間鍵/值對分成若干區(qū),將各個區(qū)在磁盤中的位置信息發(fā)送給主程序,然后轉(zhuǎn)發(fā)給reduce子事務(wù)節(jié)點;
第五、調(diào)用中間數(shù)據(jù),reduce子事務(wù)節(jié)點獲取由主程序轉(zhuǎn)發(fā)的子事務(wù)后,根據(jù)位置信息調(diào)用磁盤上的中間數(shù)據(jù),并對這些中間數(shù)據(jù)按照key值進(jìn)行排序,相同的key值進(jìn)行合并操作;
第六、執(zhí)行reduce函數(shù),reduce子事務(wù)節(jié)點遍歷排序后的中間數(shù)據(jù),并將數(shù)據(jù)傳遞給用戶定義的reduce函數(shù),執(zhí)行結(jié)果將被輸出到最終的輸出文件中;
第七、輸出結(jié)果,當(dāng)所有的reduce子事務(wù)完成后,主程序節(jié)點將所有數(shù)據(jù)返回給用戶程序,用戶程序合并數(shù)據(jù)并輸出最終數(shù)據(jù)。
所述的外部設(shè)備14包括u盤或光驅(qū)。
所述的光驅(qū)包括cd-rom或dvd-rom。
所述的系統(tǒng)存儲器28包括存儲系統(tǒng)34、ram30、高速緩存32和程序模塊42,所述的mapreduce編程模型設(shè)置在程序模塊42中。
所述的程序模塊42中還存儲有操作系統(tǒng)、一個或多個應(yīng)用程序以及程序數(shù)據(jù)。
所述的總線18包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(isa)總線、微通道體系結(jié)構(gòu)(mac)總線、增強(qiáng)型isa總線、視頻電子標(biāo)準(zhǔn)協(xié)會(vesa)局域總線以及外圍組件互連(pci)總線。
所述的服務(wù)器能夠通過i/o接口22與網(wǎng)卡或調(diào)制解調(diào)器進(jìn)行通信。
所述的服務(wù)器能夠通過網(wǎng)絡(luò)適配器20與一個或多個局域網(wǎng)(lan)、廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò)(例如互聯(lián)網(wǎng))通信。
雖然,上文中已經(jīng)用一般性說明及具體實施例對本發(fā)明作了詳盡的描述,但在本發(fā)明基礎(chǔ)上,可以對之作一些修改或改進(jìn),這對本領(lǐng)域技術(shù)人員而言是顯而易見的。因此,在不偏離本發(fā)明精神的基礎(chǔ)上所做的這些修改或改進(jìn),均屬于本發(fā)明要求保護(hù)的范圍。