吳曉婷 劉學(xué)超
摘 要:Hadoop是一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),已經(jīng)廣泛應(yīng)用在云計(jì)算領(lǐng)域,Hadoop的框架最核心的設(shè)計(jì)是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),則MapReduce為海量的數(shù)據(jù)提供了計(jì)算。
關(guān)鍵詞:Hadoop;HDFS;MapReduce;云計(jì)算
云計(jì)算是一種新興的計(jì)算模型,它是并行計(jì)算、分布計(jì)算、網(wǎng)絡(luò)計(jì)算的綜合發(fā)展。它的基本原理是將計(jì)算、存儲(chǔ)及硬件等服務(wù)分布在非本地的大量計(jì)算機(jī)構(gòu)成的資源池上,用戶通過(guò)網(wǎng)絡(luò)獲得相應(yīng)的服務(wù),從而有效的提高資源利用率,實(shí)現(xiàn)了真正的按需獲取。目前云計(jì)算模型眾多,但多為商業(yè)模型,而Hadoop作為開(kāi)源的云計(jì)算模型,它模仿和實(shí)現(xiàn)了Google云計(jì)算的主要技術(shù),并且使用Java語(yǔ)言編寫(xiě),可移植性強(qiáng),為個(gè)人和企業(yè)進(jìn)行云計(jì)算方面的研究奠定了基礎(chǔ)。
1 什么是云計(jì)算
云計(jì)算是一種基于因特網(wǎng)的超級(jí)計(jì)算模式,在遠(yuǎn)程的數(shù)據(jù)中心里,成千上萬(wàn)臺(tái)電腦和服務(wù)器連成一片電腦云,甚至可以讓你體驗(yàn)每秒10萬(wàn)億次的計(jì)算能力,擁有這么強(qiáng)大的計(jì)算能力可以模擬核爆炸、預(yù)測(cè)氣候變化和市場(chǎng)發(fā)展趨勢(shì)。用戶通過(guò)電腦、筆記本、手機(jī)等方式接入數(shù)據(jù)中心,按自己需求進(jìn)行運(yùn)算。
云計(jì)算分為狹義的云計(jì)算和廣義的云計(jì)算,狹義的云計(jì)算是指IT基礎(chǔ)設(shè)施的交付和使用模式,指通過(guò)網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的資源,這些資源包括硬件、平臺(tái)和軟件。提供資源的網(wǎng)絡(luò)被稱為“云”?!霸啤敝械馁Y源在使用者看來(lái)是可以無(wú)限擴(kuò)展的,并且可以隨時(shí)獲取,按需使用,隨時(shí)擴(kuò)展,按使用付費(fèi)。這種特性經(jīng)常被稱為像水電一樣使用IT基礎(chǔ)設(shè)施。廣義的云計(jì)算是指服務(wù)的交付和使用模式,指通過(guò)網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān)的,也可以是其他的服務(wù)。
2 什么是Hadoop
Hadoop的核心設(shè)計(jì)就是HDFS和MapReduce,HDFS是一個(gè)分布式文件系統(tǒng),MapReduce則是用于并行處理大數(shù)據(jù)集的軟件框架。因此,Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,它是一種技術(shù)的實(shí)現(xiàn)。
Hadoop是Apache基金會(huì)下的一款開(kāi)源軟件,它實(shí)現(xiàn)了包括分布式文件系統(tǒng)HDFS和MapReduce框架在內(nèi)的云計(jì)算軟件平臺(tái)的基礎(chǔ)架構(gòu),并且在其上整合了包括數(shù)據(jù)庫(kù)、云計(jì)算管理、數(shù)據(jù)倉(cāng)儲(chǔ)等一系列平臺(tái),其已成為工業(yè)界和學(xué)術(shù)界進(jìn)行云計(jì)算應(yīng)用和研究的標(biāo)準(zhǔn)平臺(tái)。Hadoop現(xiàn)在已經(jīng)廣泛應(yīng)用于包括國(guó)外的FaceBook,Twitter,Yahoo!等公司,國(guó)內(nèi)的百度,阿里等,Hadoop運(yùn)行在數(shù)以千計(jì)的服務(wù)器和數(shù)以萬(wàn)計(jì)的CPU的集群上。
通俗的說(shuō)Hadoop是一套開(kāi)源的、基礎(chǔ)是Java的、目前能夠讓數(shù)千臺(tái)普通、廉價(jià)的服務(wù)器組成一個(gè)穩(wěn)定的、強(qiáng)大的集群,使其能夠?qū)b級(jí)別的大數(shù)據(jù)進(jìn)行存儲(chǔ)、計(jì)算。已經(jīng)具有了強(qiáng)大穩(wěn)定的生態(tài)系統(tǒng),也具有很多使用的延伸產(chǎn)品。比如做查詢的Pig,做分布式命名服務(wù)的ZooKeeper,做數(shù)據(jù)庫(kù)的Hive等。
基于Hadoop,用戶可編寫(xiě)處理海量數(shù)據(jù)的分布式并行程序,并將其運(yùn)行于由成百上千個(gè)結(jié)點(diǎn)組成的大規(guī)模計(jì)算機(jī)集群上。Hadoop已被全球幾大IT公司用作其“云計(jì)算”環(huán)境中的重要基礎(chǔ)軟件,如:雅虎正在開(kāi)發(fā)基于Hadoop的開(kāi)源項(xiàng)目Pig,這是一個(gè)專注于海量數(shù)據(jù)集分析的分布式計(jì)算程序。亞馬遜公司則基于Hadoop推出了Amazon S3,提供可靠,快速,可擴(kuò)展的網(wǎng)絡(luò)存儲(chǔ)服務(wù)。因此,Hadoop是云計(jì)算中一部分技術(shù)的實(shí)現(xiàn),而不是全部。
3 關(guān)于MapReduce
MapReduce是Google提出的一個(gè)軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。當(dāng)前的軟件實(shí)現(xiàn)是指定一個(gè)Map(映射)函數(shù),用來(lái)把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(化簡(jiǎn))函數(shù),用來(lái)保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。
在函數(shù)式語(yǔ)言里,map表示對(duì)一個(gè)列表(List)中的每個(gè)元素做計(jì)算,reduce表示對(duì)一個(gè)列表中的每個(gè)元素做迭代計(jì)算。它們具體的計(jì)算是通過(guò)傳入的函數(shù)來(lái)實(shí)現(xiàn)的,map和reduce提供的是計(jì)算的框架。不過(guò)從這樣的解釋到現(xiàn)實(shí)中的MapReduce還太遠(yuǎn),仍然需要一個(gè)跳躍。再仔細(xì)看,reduce既然能做迭代計(jì)算,那就表示列表中的元素是相關(guān)的,比如我想對(duì)列表中的所有元素做相加求和,那么列表中至少都應(yīng)該是數(shù)值吧。而map是對(duì)列表中每個(gè)元素做單獨(dú)處理的,這表示列表中可以是雜亂無(wú)章的數(shù)據(jù)。這樣看來(lái),就有點(diǎn)聯(lián)系了。在MapReduce里,Map處理的是原始數(shù)據(jù),自然是雜亂無(wú)章的,每條數(shù)據(jù)之間互相沒(méi)有關(guān)系;到了Reduce階段,數(shù)據(jù)是以key后面跟著若干個(gè)value來(lái)組織的,這些value有相關(guān)性,至少它們都在一個(gè)key下面,于是就符合函數(shù)式語(yǔ)言里map和reduce的基本思想了。
4 Hadoop和云計(jì)算的關(guān)系
Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,它是一種技術(shù)的實(shí)現(xiàn),是云計(jì)算技術(shù)中重要的組成部分,云計(jì)算的概念更廣泛且偏向業(yè)務(wù)而不是必須拘泥于某項(xiàng)具體技術(shù),云計(jì)算的存在只是一種新的商業(yè)計(jì)算模型和服務(wù)模式。
5 用Hadoop來(lái)做什么
⑴數(shù)據(jù)備份/文件歸檔,這利用了hadoop海量數(shù)據(jù)的存儲(chǔ)能力。⑵數(shù)據(jù)倉(cāng)庫(kù)/數(shù)據(jù)挖掘:分析web日志,分析用戶的行為(如:用戶使用搜索時(shí),在搜索結(jié)果中點(diǎn)擊第2頁(yè)的概率有多大)。⑶搜索引擎:設(shè)計(jì)hadoop的初衷,就是為了快速建立索引。⑷云計(jì)算:中國(guó)移動(dòng)的大云,就是基于hadoop的。⑸研究:hadoop的本質(zhì)就是分布式計(jì)算,又是開(kāi)源的。
[參考文獻(xiàn)]
[1](美)Tom White.Hadoop權(quán)威指南(第2版).清華大學(xué)出版社,2011.7.
[2](美)Chuck Lam.Hadoop實(shí)戰(zhàn).人民郵電出版社,2011.10.
[3]趙書(shū)蘭.經(jīng)典Hadoop云計(jì)算.電子工業(yè)出版社,2013.1.