梁芷梧
摘要:大數(shù)據(jù)(Big Data)是隨著計(jì)算機(jī)技術(shù)及互聯(lián)網(wǎng)技術(shù)的高速發(fā)展而產(chǎn)生的獨(dú)特?cái)?shù)據(jù)現(xiàn)象?,F(xiàn)代社會(huì)正以不可想象的速度產(chǎn)生大數(shù)據(jù),幸運(yùn)的是,計(jì)算機(jī)技術(shù)與互聯(lián)網(wǎng)技術(shù)的發(fā)展,在產(chǎn)生大數(shù)據(jù)的同時(shí),也給人們帶來了全新的云計(jì)算技術(shù)。云計(jì)算技術(shù)帶來的大數(shù)據(jù)處理能力,使得分析和掌握大數(shù)據(jù)中蘊(yùn)藏的無盡信息、知識和智慧成為可能。
分布式計(jì)算(Distributed Computing)是將數(shù)量級大的工程數(shù)據(jù)劃分成若干個(gè)小分塊,由多個(gè)計(jì)算機(jī)即計(jì)算節(jié)點(diǎn)分別來計(jì)算后將運(yùn)算結(jié)果進(jìn)行上傳,最終把結(jié)果進(jìn)行合并從而得出統(tǒng)一的數(shù)據(jù)結(jié)論的計(jì)算過程。并行計(jì)算(Parallel Computing)指的是將一個(gè)總的計(jì)算任務(wù)劃分成多個(gè)子分塊,在具備了并行處理能力的計(jì)算節(jié)點(diǎn)上,分配給不同的處理器,各處理器之間遵循調(diào)配機(jī)制并行地執(zhí)行子分塊任務(wù),最終達(dá)到提升計(jì)算規(guī)模或者提高計(jì)算速度的目的。
在本設(shè)計(jì)中利用的是Hadoop分布式架構(gòu),其主要由3個(gè)子項(xiàng)目組成:MapReduce(編程模型和軟件框架,用于在大規(guī)模計(jì)算機(jī)集群上編寫對大數(shù)據(jù)進(jìn)行快速處理的并行化程序)、HDFS(構(gòu)建于廉價(jià)計(jì)算機(jī)集群之上的分布式文件系統(tǒng))和Hadoop Common(為整體架構(gòu)提供基礎(chǔ)支撐功能)。著重研究了MapReduce處理框架并建立了一個(gè)能夠?qū)?shù)據(jù)進(jìn)行可靠處理的分布式系統(tǒng)平臺,使其以分布式并行工作方式加快處理速度,從而體現(xiàn)出其在云計(jì)算應(yīng)用中處理大量數(shù)據(jù)時(shí)的優(yōu)勢。最終通過程序測試來了分析MapReduce框架在數(shù)據(jù)處理中的流程及特點(diǎn)。
關(guān)鍵詞:MapReduce;云計(jì)算;并行計(jì)算;Hadoop;分布式計(jì)算
在現(xiàn)代網(wǎng)絡(luò)科技水平不斷提升的態(tài)勢下,云計(jì)算基于并行計(jì)算、分布式計(jì)算和網(wǎng)格計(jì)算之下不斷發(fā)展,成為了普及性的計(jì)算模式,隨著云計(jì)算和個(gè)人高性能計(jì)算機(jī)技術(shù)的縱深發(fā)展,單機(jī)工作模式逐漸被并行計(jì)算模式所替代,MapReduce分布式并行編程模式與傳統(tǒng)分布式程序相比,涵蓋了并行處理、容錯(cuò)處理、負(fù)載均衡等內(nèi)容,有強(qiáng)大便捷的編程接口,極大地降低了并行程序的開發(fā)和設(shè)計(jì)難度。
一、云計(jì)算技術(shù)概述
云計(jì)算將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池之上,根據(jù)用戶的需求獲取計(jì)算能力、存儲(chǔ)空間和信息化服務(wù),是一種自我維護(hù)和管理的虛擬計(jì)算資源,在專門軟件的條件下實(shí)現(xiàn)自動(dòng)化管理,并支持各種應(yīng)用程序的運(yùn)行,如:計(jì)算集群、存儲(chǔ)服務(wù)器等,其廣義的涵義即為“網(wǎng)絡(luò)計(jì)算”。
1、Google云計(jì)算原理
它由分布式文件系統(tǒng)GFS、MapReduce并行計(jì)算編程模式、BigTable結(jié)構(gòu)化存儲(chǔ)系統(tǒng)構(gòu)成,是建立在大數(shù)據(jù)存儲(chǔ)能力基礎(chǔ)之上的處理操作。在分布式文件系統(tǒng)GFS之中,可以進(jìn)行大數(shù)據(jù)、分布式的讀寫操作,用系統(tǒng)所特有的全局唯一的ID標(biāo)識進(jìn)行數(shù)據(jù)塊的識別。MapReduce并行計(jì)算編程模式可以將邏輯問題與分布式編輯中的問題相隔離,MapReduce并行計(jì)算編程模式可以跨越大量數(shù)據(jù)節(jié)點(diǎn),分割任務(wù)并分配給下層計(jì)算節(jié)點(diǎn),執(zhí)行輸入數(shù)據(jù)的劃分、節(jié)點(diǎn)業(yè)務(wù)執(zhí)行的調(diào)度以及容錯(cuò)處理等,實(shí)現(xiàn)應(yīng)用程序的開發(fā),從而服務(wù)于Google大數(shù)據(jù)的處理工作。BigTable呈現(xiàn)出分布式的、稀疏的、有序的多維度Map,具有良好的伸縮性和高可用性。
2、Hadoop云計(jì)算系統(tǒng)
Hadoop的內(nèi)核由HDFS、MapReduce和Hbase組成,是Apache開源組織的一個(gè)分布式計(jì)算架構(gòu),具有良好的可擴(kuò)展性和高效性,在分布式文件系統(tǒng)HDFS和MapReduce編輯模型相整合的架構(gòu)中,可以實(shí)現(xiàn)Local Data的處理模式,并增加了網(wǎng)絡(luò)爬蟲、Web搜索引擎功能、文檔格式插件等,對數(shù)據(jù)信息進(jìn)行高效的處理,在這個(gè)集群之中,可以對存儲(chǔ)在本地磁盤的數(shù)據(jù)進(jìn)行計(jì)算,這種“本地計(jì)算”的模式極大地?cái)U(kuò)展了傳輸量,節(jié)約了網(wǎng)絡(luò)帶寬占用量,并且還可以進(jìn)行可擴(kuò)展的訪問,適合于海量數(shù)據(jù)集的應(yīng)用運(yùn)行。
二、云計(jì)算中MapReduce分布式并行處理框架的研究設(shè)計(jì)
Hadoop分布式架構(gòu),其主要由3個(gè)子項(xiàng)目組成:MapReduce(編程模型和軟件框架,用于在大規(guī)模計(jì)算機(jī)集群上編寫對大數(shù)據(jù)進(jìn)行快速處理的并行化程序)、HDFS(構(gòu)建于廉價(jià)計(jì)算機(jī)集群之上的分布式文件系統(tǒng))和Hadoop Common(為整體架構(gòu)提供基礎(chǔ)支撐功能)。
1、MapReduce
MapReduce編程模型及軟件框架,是指用于在大規(guī)模計(jì)算機(jī)集群上編寫對大數(shù)據(jù)進(jìn)行快速處理的并行化程序。其思想是將大規(guī)模集群上運(yùn)行的并行計(jì)算加以抽象化,并用兩個(gè)抽象函數(shù)加以表達(dá):Map和Reduce,即:映射和化簡,它是在軟件框架下對任務(wù)進(jìn)行分解,并匯總中間運(yùn)行的結(jié)果,最終得到終極結(jié)果集。
MapReduce的工作原理主要包括以下具體內(nèi)容:(1)提交MapReduce作業(yè)。在提交作業(yè)之后,runJob()方法將在每秒輪詢作業(yè)進(jìn)度,顯示作業(yè)的成功狀況,對于與記錄不符的作業(yè)要在控制臺加以顯示,對于成功的作業(yè),則顯示出作業(yè)計(jì)數(shù)器。(2)MapReduce作業(yè)的初始化。當(dāng)JobTracker接收到submitJob()方法的調(diào)用之后,由作業(yè)調(diào)度器對其進(jìn)行調(diào)度,實(shí)施初始化,并追蹤任務(wù)實(shí)施的狀態(tài)。(3)MapReduce任務(wù)的分配。JobTracker首先要選定任務(wù)所在的作業(yè),在選取好作業(yè)之后,JobTracker就可以為該作業(yè)分配一個(gè)確定的任務(wù)。
2、HDFS
這是一個(gè)構(gòu)建于廉價(jià)計(jì)算機(jī)集群之上的、Hadoop架構(gòu)中的分布式文件系統(tǒng),有著極高的容錯(cuò)性特征,適用于超大數(shù)據(jù)信息的應(yīng)用程序。它通過數(shù)據(jù)塊序列的方式對文件進(jìn)行存儲(chǔ),利用Namenode節(jié)點(diǎn)對所有的數(shù)據(jù)塊,進(jìn)行復(fù)制操作,這主要是為了實(shí)現(xiàn)節(jié)點(diǎn)故障容錯(cuò),同時(shí),Hadoop還可以針對集群中的Datanode節(jié)點(diǎn),進(jìn)行周期性的心跳信號檢測,接收相關(guān)數(shù)據(jù)塊的狀態(tài)報(bào)告,當(dāng)Namenode節(jié)點(diǎn)可以收到一個(gè)Datanode節(jié)點(diǎn)的心跳信號,證明這個(gè)節(jié)點(diǎn)的狀態(tài)良好,適合用于存儲(chǔ)數(shù)據(jù)信息。
3、Hadoop Common
Hadoop Common為整體架構(gòu)提供基礎(chǔ)支撐功能,它在分布式計(jì)算環(huán)境中處于底層的存儲(chǔ)支持地位和作用,可以為用戶提供高速的傳輸速率,進(jìn)行應(yīng)用程序數(shù)據(jù)的訪問。
三、程序測試
通過對云計(jì)算分布式并行處理框架系統(tǒng)的測試,MapReduce框架在數(shù)據(jù)處理中的流程,主要表現(xiàn)為:MapReduce函數(shù)庫將文件劃分為若干個(gè)文件塊,并在集群上執(zhí)行處理程序,在執(zhí)行程序中的主控程序?yàn)镸aster,其他執(zhí)行程序由Master進(jìn)行分配,Master根據(jù)Worker的具體情況分配Map和Reduce任務(wù),讀取輸入的信息數(shù)據(jù)塊,對其進(jìn)行處理,Map函數(shù)輸出中間結(jié)果
四、結(jié)束語
綜上所述,在計(jì)算機(jī)網(wǎng)絡(luò)計(jì)算技術(shù)不斷進(jìn)步的時(shí)代下,云計(jì)算融合了并行計(jì)算、分布式計(jì)算和網(wǎng)格計(jì)算模式,成為了一種虛擬化、負(fù)載均衡的網(wǎng)絡(luò)計(jì)算模式,在基于MapReduce并行編程模式的條件下,可以使云計(jì)算分布式并行處理性能得到極大的改進(jìn)和提高,并在未來的發(fā)展趨勢中實(shí)現(xiàn)對數(shù)據(jù)的動(dòng)態(tài)分配。
參考文獻(xiàn):
[1]張琦.基于MapReduce的分布式規(guī)則匹配系統(tǒng)的研究與實(shí)現(xiàn)[D]. 浙江大學(xué)2011
[2]楊玲.面向云計(jì)算的MapReduce并行編程模式的研究與應(yīng)用[D]. 湖南大學(xué)2011
[3]周飛鳳.MapReduce在科學(xué)計(jì)算中的研究與改進(jìn)[D].安徽大學(xué) 2013