杜艷綏
摘要:最近幾年,隨著互聯(lián)網(wǎng)技術(shù)和云計(jì)算技術(shù)的極大普及和廣泛應(yīng)用,網(wǎng)絡(luò)中的數(shù)據(jù)正在以前所未有的迅猛速度增長(zhǎng)和積累,根據(jù)Facebook的統(tǒng)計(jì),每天將近產(chǎn)生500TB的數(shù)據(jù),可見大數(shù)據(jù)時(shí)代已經(jīng)開始走入了我們的生活之中,那么如何能夠更好的對(duì)這些隱藏的數(shù)據(jù)進(jìn)行分析和挖掘有價(jià)值的數(shù)據(jù)便顯得尤為重要,在這樣的大數(shù)據(jù)環(huán)境之下,傳統(tǒng)的數(shù)據(jù)庫很難解決和處理如此龐大的數(shù)據(jù),因此,基于MapReduce的數(shù)據(jù)處理方式變成為主流技術(shù)致意。大數(shù)據(jù)時(shí)代的到來,讓我們感受著信息的便捷、獲取著巨大的利益,同時(shí),也為我們帶來了從未有過的挑戰(zhàn)。
關(guān)鍵詞:MapReduce;Hadoo;大數(shù)據(jù)時(shí)代;數(shù)據(jù)挖掘
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)10-0001-02
自從2004年Google提出了MapReduce的這種并行編程環(huán)境以來,這種基于MapReduce的算法便在日益倍受關(guān)注的大數(shù)據(jù)領(lǐng)域得到廣泛應(yīng)用。諸如雅虎中國(Yahoo)、臉譜(Facebook)、亞馬迅(Amazon)等知名大型的互聯(lián)網(wǎng)公司也都紛紛的應(yīng)用MapReduce來處理大數(shù)據(jù)的相關(guān)問題。與此同時(shí),學(xué)術(shù)界等科研部門也開始對(duì)MapReduce的相關(guān)算法進(jìn)行研究,極其有效的推動(dòng)了MapReduce的相關(guān)知識(shí)內(nèi)容的發(fā)展。
1 大數(shù)據(jù)時(shí)代的相關(guān)背景
1.1 大數(shù)據(jù)的概念
“大數(shù)據(jù)”這三個(gè)字在電視、報(bào)紙、網(wǎng)絡(luò)等媒體中每天都會(huì)聽到,人們?cè)絹碓疥P(guān)注大數(shù)據(jù)這樣一個(gè)概念,尤其隨著互聯(lián)網(wǎng)的發(fā)展與普及,以及云計(jì)算等相關(guān)技術(shù)的誕生和發(fā)展,互聯(lián)網(wǎng)中的數(shù)據(jù)正在以一種前所未有的速度在增長(zhǎng)和累積,可以毫不夸張的說,大數(shù)據(jù)已經(jīng)走進(jìn)了我們每個(gè)人的日常生活之中。正如我們從字面的理解來看,大數(shù)據(jù)指的就是龐大的數(shù)據(jù)規(guī)模。但是現(xiàn)在無論是工業(yè)環(huán)境還是學(xué)術(shù)界對(duì)于大數(shù)據(jù)都沒有太過具體的概念,集中的概括,就是利用一些常見的軟件作為工具,對(duì)大小超出常規(guī)的數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行獲取、存儲(chǔ)、管理和處理分析數(shù)據(jù)的能力的數(shù)據(jù)集。
1.2 大數(shù)據(jù)的特點(diǎn)
在我們生活存在的大數(shù)據(jù)時(shí)代,受到了各界人士的廣泛關(guān)注,目前對(duì)于大數(shù)據(jù)的特點(diǎn)主要是按照Grobelnik M.所給出的3V 的闡述。即:1)規(guī)模性(Volume),數(shù)量龐大、規(guī)模擴(kuò)充;2)多樣性(Variety),包含了傳統(tǒng)數(shù)據(jù)庫的結(jié)構(gòu)化數(shù)據(jù),已經(jīng)半結(jié)構(gòu)或無結(jié)構(gòu)化的數(shù)據(jù);3)高速性(Velocity),主要體現(xiàn)在對(duì)大數(shù)據(jù)的產(chǎn)生和更新的頻率上面,時(shí)刻都在產(chǎn)生和更新著龐大的數(shù)據(jù)。
另外,目前對(duì)于大數(shù)據(jù)的特點(diǎn),還有一點(diǎn)被人們所關(guān)注,那就是價(jià)值性(Value),因?yàn)楝F(xiàn)在大數(shù)據(jù)的環(huán)境之下,有些大數(shù)據(jù)并不是有價(jià)值的,只有具備價(jià)值的大數(shù)據(jù)才是真正的大數(shù)據(jù)。
1.3 大數(shù)據(jù)的計(jì)算環(huán)境
目前對(duì)于大數(shù)據(jù)環(huán)境的計(jì)算主要有兩種方式,一種就是以Storm為代表的實(shí)時(shí)處理計(jì)算環(huán)境,Storm是一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)的計(jì)算系統(tǒng),可以很迅速的以秒為級(jí)別的處理大數(shù)據(jù);另一類就是能夠批處理計(jì)算的環(huán)境,比如MapReduce,而且,因?yàn)镸apReduce自身具備著良好的擴(kuò)展性、可用性以及容錯(cuò)性,所以目前MapReduce已經(jīng)成為了處理大數(shù)據(jù)的并行計(jì)算環(huán)境中最為主流的方法。Hadoop是目前實(shí)現(xiàn)MapReduce思想最重要的開源,得到學(xué)術(shù)界和工業(yè)等的廣泛關(guān)注,同時(shí)也得到了許多知名網(wǎng)站公司的大力支持。Hadoop 的組件架構(gòu)圖如1所示。
其中HDFS(Hadoop Distributed File System)是Hadoop的分布式文件系統(tǒng),Hcatalog是對(duì)于表和底層數(shù)據(jù)管理的統(tǒng)一服務(wù)平臺(tái),MapReduce是分布式計(jì)算框架,分為三個(gè)階段:map階段、shuffle階段和reduce階段。HBase是基于列的數(shù)據(jù)庫系統(tǒng),Hive是數(shù)據(jù)倉庫,Pig是數(shù)據(jù)流處理平臺(tái),Zookeeper是提供同步和配置集群等功能的分布式協(xié)作服務(wù),其中HDFS和MapReduce是最重要的核心組件。
2 基于MapReduce的大數(shù)據(jù)處理技術(shù)
2.1 關(guān)于MapReduce
大數(shù)據(jù)正在迅速的增加和累積,為了能夠更好的分析和挖掘這些數(shù)據(jù)中隱藏的信息,必須要將這些有價(jià)值的數(shù)據(jù)移植到容錯(cuò)性強(qiáng)的分布式計(jì)算環(huán)境當(dāng)中進(jìn)行處理,這樣的情況之下,傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)已經(jīng)不能滿足快速分析大數(shù)據(jù)的功能,除了已有的特點(diǎn)之外,新型的數(shù)據(jù)處理技術(shù)還應(yīng)當(dāng)有良好的擴(kuò)展性、較好的容錯(cuò)性、接口的易用開放性,并且支持異構(gòu)結(jié)構(gòu),因此,MapReduce這樣一種并行的編程模型和HDFS的分布式存儲(chǔ)系統(tǒng)便可以雙劍合璧,具備一切所需的特點(diǎn),而且MapReduce由具備了map函數(shù)接口和reduce函數(shù)接口,map可以對(duì)數(shù)據(jù)進(jìn)行過濾處理,reduce則可以對(duì)數(shù)據(jù)進(jìn)行聚集的處理,這樣可以屏蔽低層的并行控制,極大程度的減輕了程序員在進(jìn)行并行程序開發(fā)的工作量。MapReduce的原理架構(gòu)圖如2所示。
2.2 基于MapReduce的數(shù)據(jù)處理算法
2.2.1基于MapReduce的連接算法優(yōu)化
在海量的數(shù)據(jù)之中,正如大家所知,如何能夠?qū)嫶蟮臄?shù)據(jù)在進(jìn)行查詢的操作之時(shí),可以節(jié)省數(shù)據(jù)之間關(guān)連的操作,是用戶最為期盼的,因此,對(duì)數(shù)據(jù)之間的連接算法進(jìn)行優(yōu)化可以極大的提高數(shù)據(jù)查詢的效率。目前,對(duì)于MapReduce連接算法的優(yōu)化,主要是對(duì)傳統(tǒng)MapReduce的連接算法的優(yōu)化、基于索引的連接算法的優(yōu)化以及基于改進(jìn)MapReduce的連接算法的優(yōu)化這樣三種。
基于傳統(tǒng)的MapReduce的連接算法的優(yōu)化主要是要解決兩表等值連接、多表等值連接、相似度連接、數(shù)據(jù)傾斜時(shí)的連接、以及任意連接的算法的優(yōu)化問題;基于索引的連接算法的優(yōu)化主要是利用索引機(jī)制減少讀取數(shù)據(jù)量或者是減少網(wǎng)絡(luò)傳輸,從而提高數(shù)據(jù)連接效率,一直以來,索引技術(shù)都是提高數(shù)據(jù)查詢和分析的重要手段之一,對(duì)于MapReduce進(jìn)行批處理的模型算法是沒有索引機(jī)制的,對(duì)于任意的一個(gè)查詢的操作,都需要將所有的數(shù)據(jù)全部加載在系統(tǒng)中進(jìn)行處理的,但是MapReduce卻不具備索引機(jī)制,因此也成為它的弊端之一,學(xué)術(shù)界的研究人員在Hadoop基礎(chǔ)之上增加了索引機(jī)制,進(jìn)行了優(yōu)化;基于改進(jìn)的MapReduce連接優(yōu)化算法主要是增加了接口,系統(tǒng)更加容易地進(jìn)行連接算法的優(yōu)化。因?yàn)閭鹘y(tǒng)的MapReduce的進(jìn)行連接查詢時(shí),網(wǎng)絡(luò)的傳輸量巨大,需要很多輪的MapReduce任務(wù),學(xué)術(shù)界希望針對(duì)MapReduce的模型做一些嘗試,對(duì)數(shù)據(jù)連接進(jìn)行優(yōu)化。