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