隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,數(shù)宇信息正在成指數(shù)增加,根據(jù)Internet Data Cente:發(fā)布的Digital Universe報(bào)告顯示,在未來8年中所產(chǎn)生的數(shù)據(jù)量將達(dá)到40 ZB,相當(dāng)于每人產(chǎn)生5200 G的數(shù)據(jù),如何高效地計(jì)算和存儲(chǔ)這些海量數(shù)據(jù)成為互聯(lián)網(wǎng)企業(yè)所要而對(duì)的挑戰(zhàn)。傳統(tǒng)的大規(guī)模數(shù)據(jù)處理大多采用并行計(jì)算、網(wǎng)格計(jì)算、分布式高性能計(jì)算等,耗費(fèi)昂貴的存儲(chǔ)與計(jì)算資源,而且對(duì)于大規(guī)模數(shù)據(jù)計(jì)算任務(wù)的有效分配和數(shù)據(jù)合理分割都需要復(fù)雜的編程才可以實(shí)現(xiàn);贖adoop分布式云平臺(tái)的出現(xiàn)成為解決此類問題的良好途徑,本文將在綜述Hadoop核心技術(shù):HDFS和MapReduce基礎(chǔ)上,利用VMware虛擬機(jī)搭建一個(gè)基于Hadoop分布式技術(shù)的高效、易擴(kuò)展的云數(shù)據(jù)計(jì)算與存儲(chǔ)平臺(tái),并通過實(shí)驗(yàn)驗(yàn)證分布式計(jì)算與存儲(chǔ)的優(yōu)勢(shì)。
1、Hadoop及其相關(guān)技術(shù)
Hadoop是并行技術(shù)、分布式技術(shù)和網(wǎng)格計(jì)算技術(shù)發(fā)展的產(chǎn)物,是一種為適應(yīng)大規(guī)模數(shù)據(jù)計(jì)算和存儲(chǔ)而發(fā)展起來的模型架構(gòu)。Hadoop是Apache公司旗下的一個(gè)分布式計(jì)算和存儲(chǔ)的框架平臺(tái),能夠高效存儲(chǔ)大量數(shù)據(jù),而且可以編寫分布式應(yīng)用程序來分析計(jì)算海量數(shù)據(jù)。Hadoop可在大量廉價(jià)硬件設(shè)備集群中運(yùn)行程序,為各應(yīng)用程序提供可靠穩(wěn)定的接口來構(gòu)建高擴(kuò)展性和高可靠行的分布式系統(tǒng)。Hadoop具有成本低廉、可靠性高、容錯(cuò)性高、擴(kuò)展性強(qiáng)、效率高、可移植性強(qiáng)、免費(fèi)開源的優(yōu)點(diǎn)。
Hadoop集群為典型Master/Slave、結(jié)構(gòu),基于Hadoop的云計(jì)算與存儲(chǔ)架構(gòu)模型如圖1所示。
圖 1 基于Hadoop的云計(jì)算與存儲(chǔ)架構(gòu)模型
1.1 Hadoop分布式文件系統(tǒng)HDFS
HDFS是一個(gè)運(yùn)行在大量廉價(jià)硬件之上的分布式文件系統(tǒng),它是Hadoop平臺(tái)的底層文件存儲(chǔ)系統(tǒng),主要負(fù)責(zé)數(shù)據(jù)的管理和存儲(chǔ),對(duì)于大文件的數(shù)據(jù)訪問具有良好性能。HDFS與傳統(tǒng)的分布式文件系統(tǒng)相似,但是也存在著一定的不同,具有硬件故障、大數(shù)據(jù)集、簡(jiǎn)單一致性、數(shù)據(jù)流式訪問、移動(dòng)計(jì)算的便捷性等特點(diǎn)。HDFS的工作流程及架構(gòu)如圖2所示。
圖 2 HDFS的工作流程及架構(gòu)結(jié)構(gòu)
一個(gè)HDFS集群中有一個(gè)NameNode和多個(gè)DataNode。如圖2所示,NameNode是中心服務(wù)器,它用來管理文件系統(tǒng)的元數(shù)據(jù)信息以及客戶端對(duì)文件的讀寫訪問,維護(hù)文件系統(tǒng)樹及其子節(jié)點(diǎn)下的所有文件和目錄。這些信息以編輯日志文件(Editlog)和命名空間鏡像文件(FsImage)的形式保存在磁盤中。NameNode還暫時(shí)記錄著各個(gè)塊(Block)所在的DataNode信息。其功能主要有:管理元數(shù)據(jù)和文件塊;簡(jiǎn)化元數(shù)據(jù)更新操作;監(jiān)聽和處理請(qǐng)求。
DataNode通常在集群中一個(gè)節(jié)點(diǎn)一個(gè),用來存儲(chǔ)、檢索數(shù)據(jù)塊,響應(yīng)NameNode下達(dá)的創(chuàng)建、復(fù)制、刪除數(shù)據(jù)塊的命令,并定時(shí)向NameNode發(fā)送“心跳”,通過心跳信息向NameNode匯報(bào)自己的負(fù)載情況,同時(shí)通過心跳信息來接受NameNode下達(dá)的指令信息;NameNode通過“心跳”信息來確定DataNode是否失效,它定時(shí)ping每個(gè)DataNode,如果在規(guī)定的時(shí)間內(nèi)沒有收到DataNode的反饋就認(rèn)為此節(jié)點(diǎn)失效,然后對(duì)整個(gè)系統(tǒng)進(jìn)行負(fù)載調(diào)整。在HDFS中,每個(gè)文件劃分成一個(gè)或多個(gè)blocks(數(shù)據(jù)塊)分散存儲(chǔ)在不同的DataNode中,DataNode之間進(jìn)行數(shù)據(jù)塊的相互復(fù)制而形成多個(gè)備份。
1.2 Map/Reduce編程框架
Map/Reduce是Hadoop用來處理云計(jì)算中海量數(shù)據(jù)的編程框架,簡(jiǎn)單易用,程序員在不必了解底層實(shí)現(xiàn)細(xì)節(jié)的基礎(chǔ)上便可寫出程序來處理海量數(shù)據(jù)。利用Map/Reduce技術(shù)可以在數(shù)千部服務(wù)器上同時(shí)開展廣告業(yè)務(wù)和網(wǎng)絡(luò)搜索等任務(wù),并可以方便地處理TB、PB,甚至是EB級(jí)的數(shù)據(jù)。
Map/Reduce框架由JobTracker和TaskTracker組成。JobTracker只有一個(gè),它是主節(jié)點(diǎn),負(fù)責(zé)任務(wù)的分配和調(diào)度,管理著幾個(gè)TaskTracker;TaskTracker一個(gè)節(jié)點(diǎn)一個(gè),用來接受并處理JobTracker發(fā)來的任務(wù)。
MapReduce針對(duì)集群中的大型數(shù)據(jù)集進(jìn)行分布式運(yùn)算,它的整個(gè)框架由Map和Reduce函數(shù)組成,處理數(shù)據(jù)時(shí)先執(zhí)行map再執(zhí)行reduce。具體執(zhí)行過程如圖3所示。執(zhí)行map函數(shù)前先對(duì)輸入數(shù)據(jù)進(jìn)行分片;然后將不同的片段分配給不同的map執(zhí)行,map函數(shù)處理之后以(key,value)的形式輸出;在進(jìn)入reduce階段前,map函數(shù)先將原來的(key,value)分成多組中間的鍵值對(duì)再發(fā)給一個(gè)reducer進(jìn)行處理;最后reduce函數(shù)合并key相同的value,并輸出結(jié)果到磁盤上。
圖 3 MapReduce計(jì)算過程
2、基于Hadoop的云計(jì)算與存儲(chǔ)平臺(tái)設(shè)計(jì)
目前,多核計(jì)算機(jī)的廣泛使用使其在搭建Hadoop集群系統(tǒng)時(shí),分給各DataNode節(jié)點(diǎn)的多個(gè)任務(wù)會(huì)產(chǎn)生對(duì)資源的競(jìng)爭(zhēng),例如:內(nèi)存、CPU、輸入輸出帶寬等,這會(huì)導(dǎo)致暫時(shí)用不到的資源處于閑置狀態(tài),致使一些資源的浪費(fèi)以及響應(yīng)時(shí)間的延長(zhǎng),資源開銷的增加最終會(huì)導(dǎo)致系統(tǒng)性能的降低。為解決此問題,本研究提出一種基于VMware虛擬機(jī)和Hadoop相結(jié)合的集群環(huán)境模型,如圖4所示,即在一臺(tái)計(jì)算機(jī)中搭建多臺(tái)虛擬操作系統(tǒng),此種做法的優(yōu)點(diǎn)是可以增加DataNode和TaskTracker節(jié)點(diǎn),而且可以充分利用物理資源,提高運(yùn)算和存儲(chǔ)的效率。
圖 4 基于VMware虛擬機(jī)和Hadoop結(jié)合的模型
3、實(shí)驗(yàn)平臺(tái)搭建
3. 1硬件環(huán)境配置
準(zhǔn)備3臺(tái)雙核計(jì)算機(jī),并分別安裝2臺(tái)VMware虛擬機(jī)軟件,在虛擬機(jī)中裝入Linux OS,從而將3臺(tái)計(jì)算機(jī)擴(kuò)展成為6臺(tái)計(jì)算機(jī),3臺(tái)計(jì)算機(jī)具有相同的配置,配置具體如表1所示。
Hadoop集群包括1個(gè)NameNode服務(wù)器和5個(gè)DataNode月及務(wù)器,配置信息如表2所示。
3.2 Hadoop環(huán)境搭建
Hadoop環(huán)境搭建過程為:配置集群hosts列表、安裝JAVA JDK系統(tǒng)軟件、配置環(huán)境變量、生成登陸密鑰、創(chuàng)建用戶帳號(hào)和Hadoop部署目錄及數(shù)據(jù)目錄、配置hadoopenv.sh環(huán)境變量、配置core-site. xml、hdfs-site. xml、mapred-site. xml。
配置完畢之后進(jìn)行格式化文件,命令為:
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoop namenode deformat
然后啟動(dòng)所有節(jié)點(diǎn),輸入命令:startall.sh。通過界而查看集群是否部署成功,首先檢查NameNode和DataNode節(jié)點(diǎn)是否正常,打開瀏覽器輸入網(wǎng)址:http: //master: 50070,若Live Nodes有6個(gè),說明全部節(jié)點(diǎn)成功啟動(dòng)。然后檢查JobTracker和TaskTracker節(jié)點(diǎn),輸入網(wǎng)址:http: //master:50030,若Nodes節(jié)點(diǎn)有6個(gè)說明節(jié)點(diǎn)啟動(dòng)成功。
4、實(shí)驗(yàn)內(nèi)容及結(jié)果分析
在部署好的Hadoop云數(shù)據(jù)計(jì)算與存儲(chǔ)平臺(tái)上進(jìn)行實(shí)驗(yàn)來驗(yàn)證基于分布式數(shù)據(jù)計(jì)算和存儲(chǔ)的方法在數(shù)據(jù)計(jì)算和存儲(chǔ)上存在優(yōu)勢(shì)。
1)實(shí)驗(yàn)一:運(yùn)行Hadoop自帶的蒙特卡洛求PI程序驗(yàn)證基于Hadoop分布式云計(jì)算的高效性。計(jì)算任務(wù)設(shè)為10個(gè),計(jì)算量為10的3 、4、5 、6次方。
環(huán)境一:?jiǎn)螜C(jī)情況下運(yùn)行;
環(huán)境二:3臺(tái)物理機(jī)搭建的集群系統(tǒng)中運(yùn)行;
環(huán)境三:6臺(tái)虛擬機(jī)搭建的集群系統(tǒng)中運(yùn)行。集群環(huán)境運(yùn)行日志如圖5所示。
圖 5 蒙特卡洛求PI程序運(yùn)行日志
每組實(shí)驗(yàn)運(yùn)行5次求所需時(shí)間的平均值,計(jì)算執(zhí)行時(shí)間結(jié)果如圖6所示,縱軸為時(shí)間/s,橫軸是計(jì)算量/次方。從圖6中可以看出單機(jī)環(huán)境下的運(yùn)算時(shí)間遠(yuǎn)遠(yuǎn)大于分布式系統(tǒng)下的運(yùn)算時(shí)間,而且集群系統(tǒng)中的節(jié)點(diǎn)越多計(jì)算速度越快。
2)實(shí)驗(yàn)二:通過運(yùn)行宇符統(tǒng)計(jì)程序(wordcounter.jar)測(cè)試基于Hadoop分布式云數(shù)據(jù)讀寫的高效性來驗(yàn)證其存儲(chǔ)性能。有4組數(shù)據(jù),大小分別為400MB、600MB、1GB和1.5GB。
本組實(shí)驗(yàn)設(shè)置Hadoop塊大小為16M默認(rèn)情況下是64 M ) ,冗余備份參數(shù)設(shè)置為3(默認(rèn)值),實(shí)驗(yàn)環(huán)境同實(shí)驗(yàn)一,程序運(yùn)行5次,記錄時(shí)間并計(jì)算平均值,運(yùn)行日志如圖7所示。
圖 7 字符統(tǒng)計(jì)程序運(yùn)行日志
運(yùn)行結(jié)果如圖8所示,縱軸為執(zhí)行時(shí)間/s,橫軸為數(shù)據(jù)量/MB。從圖8中可以得出單機(jī)環(huán)境下的數(shù)據(jù)讀寫速度明顯低于分布式環(huán)境下的速度,而且節(jié)點(diǎn)越多讀寫速度越快。
圖 8 字符統(tǒng)計(jì)程序在3種環(huán)境中的性能對(duì)比
可以看出,與傳統(tǒng)數(shù)據(jù)計(jì)算與讀寫方式相比,本文提出的在虛擬化環(huán)境下搭建的基于Hadoop分布式技術(shù)的云計(jì)算與存儲(chǔ)平臺(tái),有效地提高了海量數(shù)據(jù)分析與讀寫的速度和效率;而且利用虛擬化技術(shù)搭建的集群比物理機(jī)集群效率更高,速度更快,從而大大提高了資源的利用率。
5、結(jié)束語
本文通過對(duì)Hadoop分布式文件系統(tǒng)HDFS、 MapReduce編程框架進(jìn)行研究,利用VMware虛擬機(jī)搭建基于Hadoop的云數(shù)據(jù)計(jì)算與存儲(chǔ)平臺(tái),并通過實(shí)驗(yàn)驗(yàn)證其相對(duì)于傳統(tǒng)數(shù)據(jù)處理方式具有高效、快速的特點(diǎn),滿足云計(jì)算領(lǐng)域的相關(guān)需求;而且通過應(yīng)用虛擬化技術(shù)來擴(kuò)展節(jié)點(diǎn)數(shù)量,既提高了運(yùn)行效率又提高了硬件資源的利用率,為今后云計(jì)算的研究方向打下了基礎(chǔ)。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于Hadoop的云計(jì)算與存儲(chǔ)平臺(tái)研究與實(shí)現(xiàn)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10839716289.html