云计算平台构建与实验设计
課程設(shè)計(jì)任務(wù)書
一、作業(yè)目的
? ? 物聯(lián)網(wǎng)的核心是應(yīng)用,應(yīng)用的核心是云計(jì)算。通過構(gòu)建一個(gè)云計(jì)算平臺(tái),并利用這個(gè)平臺(tái)設(shè)計(jì)云計(jì)算實(shí)驗(yàn),將結(jié)果與普通的電腦計(jì)算比較兩者的差別,感受云計(jì)算的優(yōu)越性能,從而對(duì)物聯(lián)網(wǎng)有更深刻的體驗(yàn)與認(rèn)識(shí)。
二、作業(yè)內(nèi)容及要求
????能夠按照課程設(shè)計(jì)任務(wù)書按照相應(yīng)的要求完成整個(gè)云計(jì)算平臺(tái)的搭建,要完成這個(gè)任務(wù),就要對(duì)云計(jì)算平臺(tái)的架構(gòu)和原理有一定的認(rèn)識(shí),對(duì)物聯(lián)網(wǎng)的應(yīng)用層有深入的學(xué)習(xí),通過查閱書籍文獻(xiàn)與網(wǎng)絡(luò)資料去掌握相關(guān)知識(shí),完成云平臺(tái)的構(gòu)建與實(shí)驗(yàn)的設(shè)計(jì)。
三、作業(yè)成果形式及提交要求
做出實(shí)驗(yàn)成果,并向驗(yàn)收老師展示其功能和實(shí)現(xiàn)原理,回答老師提出的相關(guān)問題;提交實(shí)驗(yàn)程序和報(bào)告。提交要求是實(shí)物驗(yàn)收必須得到老師的肯定,報(bào)告必須能清晰說(shuō)明實(shí)驗(yàn)過程與原理,嚴(yán)謹(jǐn)有說(shuō)服力。
四、參考文獻(xiàn)
[1] Hadoop權(quán)威指南,清華大學(xué)出版社,2010-5-1
[2] NIST Cloud Computing Program,http://www.nist.gov/itl/cloud/
[3] Hadoop大數(shù)據(jù)處理,人民郵電出版社,2013-09-01
[4] 虛擬化與云計(jì)算,電子工業(yè)出版社,2009-10-1
[5] 走近云計(jì)算,人民郵電出版社,2009年
[6] Hadoop實(shí)戰(zhàn),人民郵電出版社,2011年10月
[7] Hadoop云計(jì)算實(shí)戰(zhàn),清華大學(xué)出版社,2012-10
目錄
課程設(shè)計(jì)任務(wù)書
目錄
摘要
1 緒論
??1.1 云計(jì)算概述
????1.1.1 云計(jì)算的五大核心特點(diǎn)
????1.1.2 云計(jì)算的三種服務(wù)模式
??1.2 Hadoop系統(tǒng)概述
??1.3 云計(jì)算平臺(tái)搭建方法
??1.4 本次課設(shè)所用平臺(tái)與搭建方法
2.云計(jì)算平臺(tái)原理
??2.1 Hadoop系統(tǒng)原理
??2.2 ubuntu系統(tǒng)
3.云計(jì)算平臺(tái)搭建過程?
??3.1 ubuntu系統(tǒng)的安裝?
??3.2 Hadoop系統(tǒng)部署?
4.分布式云計(jì)算實(shí)驗(yàn)?
??4.1基于MapReduce的分布式云計(jì)算實(shí)驗(yàn)?
??4.2 普通PC機(jī)上的對(duì)比實(shí)驗(yàn)?
??4.3分布式云計(jì)算實(shí)驗(yàn)結(jié)果與總結(jié)?
5.課程設(shè)計(jì)總結(jié)
6.附錄
摘要
物聯(lián)網(wǎng)的核心是應(yīng)用,應(yīng)用的核心是云計(jì)算。從一開始學(xué)習(xí)物聯(lián)網(wǎng)這門課開始就不斷的聽到云計(jì)算的介紹,并且隨著學(xué)習(xí)的深入,越來(lái)越感受到云計(jì)算在物聯(lián)網(wǎng)中的重要作用,沒錯(cuò),物聯(lián)網(wǎng)的核心是應(yīng)用,應(yīng)用的核心是云計(jì)算。世界已經(jīng)悄然進(jìn)入到大數(shù)據(jù)時(shí)代,大數(shù)據(jù)的處理依靠傳統(tǒng)手段已經(jīng)捉襟見肘,隨著云計(jì)算的出現(xiàn),大數(shù)據(jù)的潛力才充分發(fā)掘出來(lái),物聯(lián)網(wǎng)也正是接著云計(jì)算的東風(fēng)才能夠發(fā)展到今天這種深刻改變?nèi)藗兩罘绞降牡夭健?/p>
云計(jì)算是物聯(lián)網(wǎng)的應(yīng)用層,做云計(jì)算關(guān)鍵要學(xué)會(huì)怎么去運(yùn)用物聯(lián)網(wǎng),為此需要查閱與云計(jì)算有關(guān)的書籍,網(wǎng)上牛人的筆記和國(guó)外網(wǎng)站的資料,親手設(shè)計(jì)與實(shí)現(xiàn)分布式程序進(jìn)行實(shí)驗(yàn),從而直觀的感受到云計(jì)算的強(qiáng)大與物聯(lián)網(wǎng)的無(wú)處不在。
云計(jì)算的重要性不言而喻,物聯(lián)網(wǎng)的發(fā)展離不開云計(jì)算,所以研究云計(jì)算的搭建與運(yùn)用是具有極大的意義。
關(guān)鍵詞:物聯(lián)網(wǎng) ?云計(jì)算 云計(jì)算平臺(tái)搭建 分布式計(jì)算
1,緒論
1.1?云計(jì)算概述
在參考文獻(xiàn)2里,NIST對(duì)云計(jì)算定義如下:云計(jì)算是一種能夠通過網(wǎng)絡(luò)以便利的、按需付費(fèi)的方式獲取計(jì)算資源(包括網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)、應(yīng)用和服務(wù)等)并提高其可用性的模式,這些資源來(lái)自一個(gè)共享的、可配置的資源池,并能夠以最省力和無(wú)人干預(yù)的方式獲取和釋放。這種模式具有5個(gè)關(guān)鍵功能,還包括3種服務(wù)模式和4種部署方式。
1.1.1云計(jì)算的五大核心特點(diǎn):
按需自助服務(wù)(On Demand Self-Service):供應(yīng)商的資源保持高可用和高就緒的狀態(tài),用戶可以按需方便地自助地獲得資源。
泛在的網(wǎng)絡(luò)訪問(Broad Network Access):可以通過各種網(wǎng)絡(luò)渠道,以統(tǒng)一標(biāo)準(zhǔn)的機(jī)制(如瀏覽器,相同的API等)獲取服務(wù),但是客戶端可以是多種多樣的瘦客戶端或富客戶端(例如移動(dòng)電話、筆記本電腦、PDA等)。
動(dòng)態(tài)的資源池(Resource Pooling):供應(yīng)商的計(jì)算資源可以被整合為一個(gè)動(dòng)態(tài)資源池,以多租戶模式服務(wù)所有客戶,不同的物理和虛擬資源可根據(jù)客戶需求動(dòng)態(tài)分配。服務(wù)商需實(shí)現(xiàn)資源的位置無(wú)關(guān)性,客戶一般不需要知道所使用的資源的確切地理位置,但在需要的時(shí)候客戶可以指定資源位置(如哪個(gè)國(guó)家,哪個(gè)數(shù)據(jù)中心等)的要求。
快速?gòu)椥?#xff08;Rapid Elasticity):可以迅速、彈性地提供服務(wù),能快速擴(kuò)展,也可以快速釋放實(shí)現(xiàn)快速縮小。對(duì)客戶來(lái)說(shuō),可以租用的資源看起來(lái)似乎是無(wú)限的,可在任何時(shí)間購(gòu)買任何數(shù)量的資源。
可計(jì)量的服務(wù)(Measured Service):服務(wù)的收費(fèi)可以是基于計(jì)量的一次一付,或基于廣告的收費(fèi)模式。系統(tǒng)以針對(duì)不同服務(wù)需求(例如,CPU時(shí)間、存儲(chǔ)空間、帶寬、甚至按用戶賬號(hào)的使用率高低)來(lái)計(jì)量資源的使用情況和定價(jià),以提高資源的管控能力和促進(jìn)優(yōu)化利用。整個(gè)系統(tǒng)資源可以通過監(jiān)控和報(bào)表的方式對(duì)服務(wù)提供者和使用者透明化。
1.1.2云計(jì)算的三種服務(wù)模式
云計(jì)算的三個(gè)服務(wù)模式(Delivery Models)是:SaaS、PaaS和IaaS。
SaaS:提供給客戶的服務(wù)是運(yùn)營(yíng)商運(yùn)行在云計(jì)算基礎(chǔ)設(shè)施上的應(yīng)用程序,用戶可以在各種設(shè)備上通過瘦客戶端界面訪問,如瀏覽器。消費(fèi)者不需要管理或控制任何云計(jì)算基礎(chǔ)設(shè)施,包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲(chǔ),等等。
PaaS:提供給消費(fèi)者的服務(wù)是把客戶采用提供的開發(fā)語(yǔ)言和工具(例如Java、Python、.Net等)開發(fā)的或收購(gòu)的應(yīng)用程序部署到供應(yīng)商的云計(jì)算基礎(chǔ)設(shè)施上。客戶不需要管理或控制底層的云基礎(chǔ)設(shè)施,包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲(chǔ)等,但客戶能控制部署的應(yīng)用程序,也可能控制運(yùn)行應(yīng)用程序的托管環(huán)境配置。
IaaS: 提供給消費(fèi)者的服務(wù)是對(duì)所有設(shè)施的利用,包括處理、存儲(chǔ)、網(wǎng)絡(luò)和其他基本的計(jì)算資源,用戶能夠部署和運(yùn)行任意軟件,包括操作系統(tǒng)和應(yīng)用程序。消費(fèi)者不管理或控制任何云計(jì)算基礎(chǔ)設(shè)施,但能控制操作系統(tǒng)的選擇、儲(chǔ)存空間、部署的應(yīng)用,也有可能獲得有限制的網(wǎng)絡(luò)組件(例如,防火墻、負(fù)載均衡器等)的控制。
目前世界大多數(shù)互聯(lián)網(wǎng)公司都開始布局云計(jì)算,Google,華為,BAT,亞馬遜也都已經(jīng)將云計(jì)算成熟運(yùn)用與自己的生態(tài)系統(tǒng),并產(chǎn)生巨大的效益。國(guó)內(nèi)外關(guān)于云計(jì)算的研究都在火熱的進(jìn)行中。無(wú)論是收費(fèi)的云計(jì)算服務(wù)還是開源云計(jì)算研究都趨于白熱化,可見云計(jì)算在未來(lái)各個(gè)領(lǐng)域非同一般的潛力。
1.2 Hadoop系統(tǒng)概述
Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。 Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡(jiǎn)稱HDFS。HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來(lái)訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。
Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和Map Reduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),則Map Reduce為海量的數(shù)據(jù)提供了計(jì)算。
?
圖1-1?HDFS文件系統(tǒng)結(jié)構(gòu)
?
圖1-2?Map Reduce工作流程
Hadoop技術(shù)已經(jīng)無(wú)處不在。不管是好是壞,Hadoop已經(jīng)成為大數(shù)據(jù)的代名詞。短短幾年間,Hadoop從一種邊緣技術(shù)成為事實(shí)上的標(biāo)準(zhǔn),不僅現(xiàn)在Hadoop是企業(yè)大數(shù)據(jù)的標(biāo)準(zhǔn),而且在未來(lái),它的地位似乎一時(shí)難以動(dòng)搖。
1.3 云計(jì)算平臺(tái)搭建方法
目前開源的云計(jì)算平臺(tái)的搭建都要依托Linux系統(tǒng),因此我們有2種辦法搭建云計(jì)算平臺(tái):安裝Linux系統(tǒng)和在其他操作系統(tǒng)下安裝Linux虛擬機(jī)后搭建云平臺(tái)。目前主流的虛擬機(jī)有:
Virtual Box
Vmware
有了Linux系統(tǒng)環(huán)境后就能搭建云計(jì)算平臺(tái)了,幾大開源云平臺(tái)系統(tǒng)有:
Hadoop系統(tǒng)
Open Stack
云計(jì)算平臺(tái)的搭建=Linux系統(tǒng)+開源云平臺(tái)+SSH框架。
1.4 本次課設(shè)所用平臺(tái)與搭建方法
一開始本設(shè)計(jì)采用的是虛擬機(jī)+Hadoop系統(tǒng)+SSH框架搭建自己的云計(jì)算平臺(tái),發(fā)現(xiàn)在虛擬機(jī)下的Linux系統(tǒng)無(wú)法下載一些系統(tǒng)關(guān)鍵應(yīng)用導(dǎo)致云平臺(tái)無(wú)法搭建,前后實(shí)驗(yàn)多次后直接給在純Linux系統(tǒng)部署云計(jì)算平臺(tái)從而成功搭建好云平臺(tái),本次課程設(shè)計(jì)所采用的搭建辦法是:
Ubuntu14.04系統(tǒng)+Hadoop系統(tǒng)+SSH框架。
2,云計(jì)算平臺(tái)原理
2.1?Hadoop系統(tǒng)原理
Hadoop是一個(gè)開源的可運(yùn)行于大規(guī)模集群上的分布式并行編程框架,其最核心的設(shè)計(jì)包括:Map Reduce和HDFS。基于 Hadoop,你可以輕松地編寫可處理海量數(shù)據(jù)的分布式并行程序,并將其運(yùn)行于由成百上千個(gè)結(jié)點(diǎn)組成的大規(guī)模計(jì)算機(jī)集群上。
簡(jiǎn)單的說(shuō):Map Reduce框架的核心步驟主要分兩部分:Map和Reduce。當(dāng)你向Map Reduce框架提交一個(gè)計(jì)算作業(yè)時(shí),它會(huì)首先把計(jì)算作業(yè)拆分成若干個(gè)Map任務(wù),然后分配到不同的節(jié)點(diǎn)上去執(zhí)行,每一個(gè)Map任務(wù)處理輸入數(shù)據(jù)中的一部分,當(dāng)Map任務(wù)完成后,它會(huì)生成一些中間文件,這些中間文件將會(huì)作為Reduce任務(wù)的輸入數(shù)據(jù)。Reduce對(duì)數(shù)據(jù)做進(jìn)一步處理之后,輸出最終結(jié)果。
Map Reduce是Hadoop的核心技術(shù)之一,為分布式計(jì)算的程序設(shè)計(jì)提供了良好的編程接口,并且屏蔽了底層通信原理,使得程序員只需關(guān)心業(yè)務(wù)邏輯本事,就可輕易的編寫出基于集群的分布式并行程序。從它名字上來(lái)看,大致可以看出個(gè)兩個(gè)動(dòng)詞Map和Reduce,“Map(展開)”就是將一個(gè)任務(wù)分解成為多個(gè)子任務(wù)并行的執(zhí)行,“Reduce”就是將分解后多任務(wù)處理的結(jié)果匯總起來(lái),得出最后的分析結(jié)果并輸出。
適合用?Map Reduce來(lái)處理的數(shù)據(jù)集(或任務(wù))有一個(gè)基本要求:待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個(gè)小數(shù)據(jù)集都可以完全并行地進(jìn)行處理。
想要徹底了解Hadoop系統(tǒng)的原理是十分困難的,由于篇幅有限,知識(shí)水平也不高,我只能描寫其大概面貌,本次課程設(shè)計(jì)的核心是學(xué)習(xí)搭建與運(yùn)用云計(jì)算平臺(tái),沒有足夠的時(shí)間與精力去完全了解Hadoop的原理,在這里我們不妨就理解為:
Hadoop系統(tǒng)=HDFS分布式文件系統(tǒng)+Map Reduce運(yùn)算機(jī)制。
這樣就能很好的明白它們的大致關(guān)系,有助于對(duì)后面實(shí)驗(yàn)的理解。
?
圖2-1 Hadoop系統(tǒng)架構(gòu)
2.2 Ubuntu系統(tǒng)
本次課程設(shè)計(jì)所使用的Linux系統(tǒng)是ubuntu14。
Ubuntu(烏班圖)是一個(gè)以桌面應(yīng)用為主的Linux操作系統(tǒng),其名稱來(lái)自非洲南部祖魯語(yǔ)或豪薩語(yǔ)的“Ubuntu”一詞,意思是“人性”、“我的存在是因?yàn)榇蠹业拇嬖凇?#xff0c;是非洲傳統(tǒng)的一種價(jià)值觀,類似華人社會(huì)的“仁愛”思想。Ubuntu基于Debian發(fā)行版和GNOME桌面環(huán)境,而從11.04版起,Ubuntu發(fā)行版放棄了Gnome桌面環(huán)境,改為Unity,與Debian的不同在于它每6個(gè)月會(huì)發(fā)布一個(gè)新版本。Ubuntu的目標(biāo)在于為一般用戶提供一個(gè)最新的、同時(shí)又相當(dāng)穩(wěn)定的主要由自由軟件構(gòu)建而成的操作系統(tǒng)。
LTS?是 Ubuntu?的長(zhǎng)期支持版,因此 Ubuntu 14.04 支持周期長(zhǎng)達(dá) 3-5 年。因此?Ubuntu 14.04 是追求穩(wěn)定的用戶和企業(yè)的最佳選擇。所以本次課程設(shè)計(jì)選擇ubuntu14.04LTS版本完全能夠應(yīng)付云平臺(tái)搭建與相關(guān)實(shí)驗(yàn)的任務(wù)。
圖2-2 ubuntu14.04LTS系統(tǒng)
3,云計(jì)算平臺(tái)搭建過程
3.1 Ubuntu系統(tǒng)的安裝
去Ubuntu官網(wǎng)下載好對(duì)應(yīng)版本的系統(tǒng)鏡像,并用虛擬光驅(qū)軟件加載鏡像,選擇安裝Ubuntu系統(tǒng),一路點(diǎn)擊繼續(xù)后大約10來(lái)分鐘就可以安裝好Ubuntu系統(tǒng)了。
3.2 Hadopp系統(tǒng)部署
修改機(jī)器名:
打開/etc/hostname文件,將/etc/hostname文件中的Ubuntu改為你想取的機(jī)器名。這里我取“s15“。重啟系統(tǒng)后才會(huì)生效。
安裝ssh服務(wù):
在terminal窗口中輸入:Sudoa apt-get install open ssh-server
建立ssh無(wú)密碼登錄本機(jī)
在terminal窗口中輸入:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa ??
?cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
得到如下圖說(shuō)明操作正確:
?
圖3-1 建立ssh無(wú)密碼登錄本機(jī)
登錄local host:
在terminal窗口中輸入:bin/start-all.sh
安裝Hadoop :
下載Hadoop 安裝包并解壓,打開Hadoop/conf/Hadoop.sh文件,配置conf/Hadoop.sh:找到#export JAVA_HOME=...一行,去掉#,然后加上本機(jī)JDK的路徑。
打開conf/core-site.XML文件,加入如下代碼:
<configuration> ?
<property> ???
??<name>fs.default.name</name> ???
??<value>hdfs://localhost:9000</value> ????
?</property> ???
</configuration> ?
打開conf/map red-site.XML文件,編輯如下:
<configuration> ???
?????<property> ????
??????<name>mapred.job.tracker</name> ???
??????<value>localhost:9001</value> ????
?????</property> ???
????</configuration> ???
打開conf/masters文件和conf/slaves文件,添加secondary的主機(jī)名,作為單機(jī)版環(huán)境,這里只需填寫local host就Ok了。
到這里Hadoop系統(tǒng)就部署完畢了。調(diào)用bin/start-all.sh 命令即可以啟動(dòng)Hadoop,用JSP命令查看系統(tǒng)狀態(tài),出現(xiàn)如下信息說(shuō)明系統(tǒng)部署成功:
?
圖3-2?用jsp命令查看系統(tǒng)狀態(tài)
4,分布式云計(jì)算實(shí)驗(yàn)
?云平臺(tái)已經(jīng)搭建完畢,那么這只是第一步,關(guān)鍵還得學(xué)會(huì)怎么用它,為了能夠體現(xiàn)云計(jì)算與普通PC機(jī)計(jì)算能力的差異我特意為本次課設(shè)設(shè)計(jì)了一個(gè)專門用于對(duì)比的實(shí)驗(yàn)程序。
云計(jì)算的能力在于飛速處理大數(shù)據(jù),為了模擬大數(shù)據(jù),在一個(gè)TXT文本中循環(huán)寫入了七百多萬(wàn)單詞,為了便于寫入這么多單詞,在TXT文本中填充了7094304個(gè)“for”來(lái)模擬大數(shù)據(jù)。
接下來(lái)分別設(shè)計(jì)一個(gè)用于分布式計(jì)算的Map Reduce程序和在普通PC機(jī)上運(yùn)行的JAVA程序,該程序的功能是統(tǒng)計(jì)一個(gè)文本中的單詞數(shù)量,并輸出整個(gè)程序運(yùn)行耗費(fèi)時(shí)間。對(duì)比兩個(gè)程序在兩個(gè)環(huán)境中的運(yùn)算耗費(fèi)時(shí)間即可比較出二者的差異。
4.1 基于Map Reduce的分布式云計(jì)算實(shí)驗(yàn)
用于分布式計(jì)算的程序核心設(shè)計(jì)如下:
[cpp]?view plaincopy其中 Date d1,d2用于捕獲程序運(yùn)行開始和結(jié)束的時(shí)間其時(shí)間差即為程序運(yùn)算所耗費(fèi)的時(shí)間;conf.setNumMapTasks(3)設(shè)置分布式運(yùn)算時(shí)所以的map數(shù)量為3個(gè),conf.setNumReduceTasks(2);設(shè)置運(yùn)算中所以的reduce數(shù)量為2個(gè),其他的設(shè)置為配置Map Reduce的其他必要參數(shù),在這里對(duì)本實(shí)驗(yàn)無(wú)影響就不解析了。
想要利用云平臺(tái)來(lái)為我們做計(jì)算服務(wù)還要把寫好的Map Reduce程序進(jìn)行編譯,打包成庫(kù)文件,然后將模擬大數(shù)據(jù)的TXT文檔提交到HDFS空間,執(zhí)行以下命令就能啟動(dòng)云計(jì)算了:
bin/Hadoop as -put input/ input?把文件提交到HDFS空間
bin/hadoop jar WordCount.jar WordCount input output?啟動(dòng)云計(jì)算
得到的結(jié)果如下:
?
圖4-1 云計(jì)算實(shí)驗(yàn)結(jié)果
可以看到輸出結(jié)果為單詞”for”7094304個(gè),耗時(shí)49882毫秒。
4.2 普通PC機(jī)上的對(duì)比實(shí)驗(yàn)
在普通PC機(jī)上運(yùn)行的對(duì)比實(shí)驗(yàn)程序十分簡(jiǎn)單,就是對(duì)一個(gè)文本進(jìn)行讀取,然后逐行識(shí)別出單詞進(jìn)行統(tǒng)計(jì),其實(shí)現(xiàn)過程與Map Reduce程序中統(tǒng)計(jì)單詞部分所實(shí)現(xiàn)的功能一樣,詳情參見附錄。
該程序在非分布式云計(jì)算環(huán)境中的實(shí)驗(yàn)結(jié)果如下:
?
圖4-2 普通PC機(jī)實(shí)驗(yàn)結(jié)果
可以看到輸出結(jié)果為單詞”for”也是7094304個(gè),耗時(shí)259973毫秒。
4.3?分布式云計(jì)算實(shí)驗(yàn)結(jié)果與總結(jié)
從兩個(gè)對(duì)比實(shí)驗(yàn)中我們非常清楚的看到同樣都是統(tǒng)計(jì)7094304個(gè)單詞的運(yùn)算普通PC機(jī)程序耗費(fèi)了259973毫秒,而分布式云計(jì)算只用了49882毫秒,分布式云計(jì)算比普通的計(jì)算快了足足5倍有余,并且由于計(jì)算速度受服務(wù)器好壞的影響,這個(gè)數(shù)據(jù)也只是在我的破電腦上的結(jié)果,如果在更強(qiáng)大的服務(wù)器上運(yùn)行那就會(huì)有更大的差距。
本設(shè)計(jì)做的這個(gè)對(duì)比實(shí)驗(yàn)雖然簡(jiǎn)陋,但是麻雀雖小,五臟齊全,同樣能夠很好的對(duì)比出兩種運(yùn)算的優(yōu)劣。除此之外,在相關(guān)的文獻(xiàn)查看過程中發(fā)現(xiàn)云計(jì)算在數(shù)據(jù)越大優(yōu)越性越能體現(xiàn)出來(lái)。事實(shí)上真正搭建好的集群式云計(jì)算平臺(tái)對(duì)于上GB的大數(shù)據(jù)都是秒內(nèi)完成的,這就是云計(jì)算的強(qiáng)大!
經(jīng)過這次實(shí)驗(yàn)可以看出,云計(jì)算有足夠的能力處理物聯(lián)網(wǎng)中龐大的數(shù)據(jù),在萬(wàn)物互聯(lián)中產(chǎn)生的無(wú)數(shù)的數(shù)據(jù)就可以用云計(jì)算技術(shù)加以綜合分析從而來(lái)更好的服務(wù)于物聯(lián)網(wǎng)。
?5, 課程設(shè)計(jì)總結(jié)
本次課程設(shè)計(jì)總的來(lái)說(shuō)進(jìn)行的還是很順利的,一開始在本設(shè)計(jì)中采用主流的虛擬機(jī)加開源云平臺(tái)的方法進(jìn)行云平臺(tái)搭建,但是在反復(fù)試了多種辦法后都失敗了,之后選擇直接安裝Ubuntu系統(tǒng)來(lái)搭建云平臺(tái),后來(lái)回想起來(lái)這果然是個(gè)聰明的決定,因?yàn)樵诩僉inux系統(tǒng)下部署云平臺(tái)的所有操作都進(jìn)行的十分順利沒有出現(xiàn)任何意外。
部署云平臺(tái)進(jìn)行的十分順利從而有了更多的時(shí)間來(lái)學(xué)習(xí)和設(shè)計(jì)對(duì)比實(shí)驗(yàn)。本以為這個(gè)對(duì)比實(shí)驗(yàn)不就是寫一個(gè)普通的統(tǒng)計(jì)單詞的JAVA程序嘛,后來(lái)才知道提交到云計(jì)算平臺(tái)的程序結(jié)構(gòu)是有一定語(yǔ)法結(jié)構(gòu)的,并且需要在程序代碼中手動(dòng)設(shè)置Map Reduce的各項(xiàng)參數(shù),如果不學(xué)一學(xué)Map Reduce程序的相關(guān)知識(shí)根本沒法寫出一個(gè)簡(jiǎn)單的Map Reduce程序,于是借閱了《Hadoop大數(shù)據(jù)處理》和《Hadoop權(quán)威指南》等書籍,學(xué)習(xí)了幾天后才出步了解Map Reduce程序的基本結(jié)構(gòu)和語(yǔ)法,設(shè)計(jì)的對(duì)比實(shí)驗(yàn)程序也就順利出爐了。
普通的PC機(jī)計(jì)算能力統(tǒng)計(jì)了七百多萬(wàn)個(gè)單詞整整耗費(fèi)了約4分鐘的時(shí)間,當(dāng)用云計(jì)算來(lái)做這個(gè)運(yùn)算時(shí)真正的被它的處理速度震撼到了,它竟然只用了不到50秒!第一次真正直觀體驗(yàn)到到云計(jì)算的強(qiáng)大就在這一刻開始了!
后來(lái)又做了更多的實(shí)驗(yàn),發(fā)現(xiàn)數(shù)據(jù)越大,兩種處理方法的對(duì)比也就越明顯,怪不得現(xiàn)在主流的互聯(lián)網(wǎng)公司都要部署云計(jì)算,沒有這么強(qiáng)大的計(jì)算能力,世界與日俱增的大數(shù)據(jù)怎么處理的過來(lái)呢!
6,附錄
Map Reduce程序:
[cpp]?view plaincopy
用于對(duì)比的統(tǒng)計(jì)單詞程序:import java.io.File;
[cpp]?view plaincopy總結(jié)
以上是生活随笔為你收集整理的云计算平台构建与实验设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (翻译)黑底白字样式的使用时机
- 下一篇: DataFormatString格式化