張 巖,郭 松,趙國(guó)海
(1.沈陽(yáng)師范大學(xué) 計(jì)算機(jī)與數(shù)學(xué)基礎(chǔ)教學(xué)部,沈陽(yáng) 110034;2.沈陽(yáng)師范大學(xué) 教育技術(shù)學(xué)院,沈陽(yáng) 110034)
云計(jì)算是繼1980年大型計(jì)算機(jī)到客戶端—— 服務(wù)器的大轉(zhuǎn)變之后的又一種巨變。云是分布式計(jì)算(distributed computing)、并行計(jì)算(parallel computing)、效用計(jì)算(utility computing)、網(wǎng)絡(luò)存儲(chǔ)(network storage technologies)、虛擬化(virtualization)、負(fù)載均衡(load balance)等傳統(tǒng)計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。云計(jì)算的核心思想是把大量的資源通過(guò)網(wǎng)絡(luò)進(jìn)行統(tǒng)一存儲(chǔ)、調(diào)度和使用,形成一個(gè)龐大的資源庫(kù),給用戶提供服務(wù)。2011年,工業(yè)和信息化部、國(guó)家發(fā)展和改革委員會(huì)聯(lián)合印發(fā)《關(guān)于做好云計(jì)算服務(wù)創(chuàng)新發(fā)展試點(diǎn)示范工作的通知》,確定在北京、上海、深圳、杭州、無(wú)錫等5個(gè)城市先行開(kāi)展云計(jì)算服務(wù)創(chuàng)新發(fā)展試點(diǎn)示范工作,顯示出我國(guó)對(duì)于發(fā)展云計(jì)算的高度重視[1]。
Hadoop是一個(gè)在大型集群的廉價(jià)硬件設(shè)備上運(yùn)行應(yīng)用程序的開(kāi)源云平臺(tái)軟件框架。Hadoop為應(yīng)用程序透明的提供了一組穩(wěn)定、可靠的接口和數(shù)據(jù)服務(wù)[2]。Hadoop中實(shí)現(xiàn)了Google的MapReduce算法,它能夠把應(yīng)用程序分割成許多很小的工作單元,每個(gè)單元可以在任何集群節(jié)點(diǎn)上執(zhí)行或重復(fù)執(zhí)行。此外,Hadoop還提供一個(gè)分布式文件系統(tǒng)用來(lái)在各個(gè)計(jì)算節(jié)點(diǎn)上存儲(chǔ)數(shù)據(jù),并提供了對(duì)數(shù)據(jù)讀寫(xiě)的高吞吐率。由于應(yīng)用了map/reduce和分布式文件系統(tǒng)使得Hadoop框架具有高容錯(cuò)性,它會(huì)自動(dòng)處理失敗節(jié)點(diǎn)[3]。
Hadoop的優(yōu)勢(shì)不但在于它的開(kāi)源,而且它的設(shè)計(jì)根本就是存儲(chǔ)和計(jì)算的高可擴(kuò)展性,分布式文件系統(tǒng)的備份恢復(fù)機(jī)制和Mapreduce的任務(wù)監(jiān)控又保證了分布式處理的高可靠性。任何普通的PC上安裝運(yùn)行Hadoop框架集群,都可以對(duì)海量的信息進(jìn)行高效處理[4]。
為了能在實(shí)驗(yàn)室環(huán)境下實(shí)現(xiàn)云平臺(tái),并能夠在云平臺(tái)上進(jìn)行開(kāi)發(fā)測(cè)試,在考慮成本的前提下,可以采用虛擬環(huán)境下的云平臺(tái)的搭建,既節(jié)省資金又能完成試驗(yàn)的目的。
軟件:VMware虛擬機(jī)8.0以上版本,Linux操作系統(tǒng)本文采用ubuntu10.04版本,Hadoop1.0.4,java-jdk 1.6.x。
硬件:一臺(tái)清華同方個(gè)人PC,CPU采用I3-2120,內(nèi)存4GB,硬盤(pán)500GB,預(yù)裝 Windows XP操作系統(tǒng)。
在Windows XP系統(tǒng)下安裝VMware虛擬機(jī)以后,打開(kāi)虛擬機(jī),在虛擬機(jī)下安裝Linux操作系統(tǒng),由于實(shí)驗(yàn)用的模擬平臺(tái)采用一個(gè)主機(jī)和4個(gè)節(jié)點(diǎn),需要虛擬5臺(tái)計(jì)算機(jī)。為了能夠網(wǎng)絡(luò)通信,要對(duì)虛擬機(jī)的網(wǎng)絡(luò)進(jìn)行相應(yīng)得配置。
VMware的虛擬網(wǎng)絡(luò)適配器通常采用Bridge和NAT兩種方式,使虛擬機(jī)能夠進(jìn)行網(wǎng)絡(luò)連接[5]:
1)Bridge方式:可以給虛擬機(jī)分配一個(gè)與主機(jī)相同網(wǎng)段的IP地址,實(shí)現(xiàn)多臺(tái)主機(jī)連接。
2)NAT方式:VMware虛擬一個(gè)局域網(wǎng),此種方式非常適合單主機(jī)多虛擬機(jī)構(gòu)建集群。在虛擬Hadoop系統(tǒng)集群中。在實(shí)驗(yàn)中采用NAT方式。通過(guò)clone選項(xiàng)可以看到在VMware中安裝了幾臺(tái)虛擬機(jī)[6]。
打開(kāi)/etc/network/interfaces文件手動(dòng)配置IP地址,這里是IP、網(wǎng)關(guān)、子網(wǎng)掩碼等的一些配置;配置IP地址和網(wǎng)關(guān),使用$sudo gedit/etc/network/interfaces打開(kāi)文件,在文件里面添加如下內(nèi)容:[7]
使用sudo gedit/etc/resolv.conf命令配置DNS,把它設(shè)置為nameserver 210.30.208.10。要實(shí)現(xiàn)Hadoop聯(lián)機(jī)成功,要在主機(jī)和節(jié)點(diǎn)上都作相應(yīng)的設(shè)置并制定主機(jī)[8]。
實(shí)驗(yàn)中把had0設(shè)置為主機(jī),其余都為節(jié)點(diǎn)。
在虛擬機(jī)中下載JDK-6u24-linux-i586.bin,并將其拷貝到安裝目錄下,使用命令:
把Hadoop安裝文件拷貝到安裝目錄下,進(jìn)行解壓縮后給文件賦予權(quán)限。
1)用編輯器打開(kāi).Bashrc文件進(jìn)行更新,這個(gè)文件可以定位Hadoop、Java環(huán)境[9]。
2)打開(kāi)hadoop-env.Sh文件設(shè)置java安裝路徑[10]:
3)下面要修改3個(gè)重要文件:
① 修改 Hadoop/conf/core-site.xml,配置主節(jié)點(diǎn)[11],在configuration中添加:
② 修改hadoop/conf/mapred-site.xml,為配置jobtracker[12]
③ 修改hadoop/conf/hdfs-site.xml,這里要配置從節(jié)點(diǎn)的數(shù)量[13]。
最后,對(duì)HDFS文件系統(tǒng)進(jìn)行格式化。Hadoop云平臺(tái)主機(jī)就按裝完成了。其他節(jié)點(diǎn)可以通過(guò)SSH進(jìn)行克隆安裝。把節(jié)點(diǎn)安裝好以后可以使用[14]。
1)先在本地磁盤(pán)建立2個(gè)文件file01和file02;
[cuijj@station1]$echo"Hello cuijj bye cuijj">file01
[cuijj@station1]$echo"Hello Hadoop Goodbye Hadoop">file02
2)在hdfs中建立一個(gè)input目錄;
[cuijj@station1]$hadoop dfs-mkdir input
3)將file01和file02拷貝到hdfs的input目錄下;
[cuijj@station1]$ hadoop dfs-copyFromLocal/home/cuijj/file0input
4)查看hdfs中有沒(méi)有input目錄;
[cuijj@station1]$ hadoop dfs-ls
5)查看input目錄下有沒(méi)有復(fù)制成功file01和file02;
6)執(zhí)行wordcount(確保hdfs上沒(méi)有output目錄);
[cuijj@station1hadoop-0.20.2]$ hadoop jar hadoop-0.20.2-examples.jar wordcount input output
7)運(yùn)行完成,查看結(jié)果。
經(jīng)過(guò)測(cè)試Hadoop平臺(tái)已經(jīng)正常工作,云計(jì)算虛擬試驗(yàn)平臺(tái)搭建完成,可供實(shí)驗(yàn)人員和開(kāi)發(fā)人員在此平臺(tái)上進(jìn)行程序設(shè)計(jì)和開(kāi)發(fā)應(yīng)用系統(tǒng)。在搭建過(guò)程中發(fā)現(xiàn)幾點(diǎn)應(yīng)該在以后的搭建平臺(tái)過(guò)程中引起注意:
1)用戶的權(quán)限問(wèn)題。如果權(quán)限配置不正確,會(huì)導(dǎo)致java和Hadopp不能安裝。
2)路徑的配置要正確。如果路徑配置錯(cuò)誤,會(huì)導(dǎo)致Hadoop運(yùn)行時(shí)不能啟動(dòng)Java,從而Hadoop也不能正常工作。
3)使用SSH服務(wù)程序。正確使用SSH服務(wù)程序克隆節(jié)點(diǎn)機(jī),可以很大程度地簡(jiǎn)化安裝過(guò)程。
通過(guò)研究和實(shí)驗(yàn),實(shí)驗(yàn)用云計(jì)算虛擬平臺(tái)已經(jīng)搭建完成。該實(shí)驗(yàn)平臺(tái)可以為進(jìn)一步研究各種平臺(tái)系統(tǒng)接口和中間件提供實(shí)驗(yàn)基礎(chǔ),并為深入研發(fā)基于云計(jì)算的用戶服務(wù)創(chuàng)造條件。
[1]田杰棠.我國(guó)云計(jì)算產(chǎn)業(yè)發(fā)展趨勢(shì)及政策建議[J].經(jīng)濟(jì)縱橫,2011(8):31-35.
[2]黎春蘭,鄧仲華.論云計(jì)算的價(jià)值[J].圖書(shū)與情報(bào),2009(4):42-47.
[3]張建勛,古志民,鄭超.云計(jì)算研究進(jìn)展綜述[J].計(jì)算機(jī)應(yīng)用研究,2010(2):429-435.
[4]張霖,羅永亮.制造云構(gòu)建關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)集成制造系統(tǒng),2010(16):2512-2522.
[5]柯棟梁,鄭嘯,李喬.云計(jì)算:實(shí)例研究與關(guān)鍵技術(shù)[J].小型微型計(jì)算機(jī)系統(tǒng),2012(33):2321-2328.
[6]劉立群,池潔.構(gòu)建基于網(wǎng)絡(luò)協(xié)作學(xué)習(xí)教學(xué)環(huán)境[J].沈陽(yáng)師范大學(xué)學(xué)報(bào):自然科學(xué)版,2012,30(2):81-85.
[7]曹風(fēng)兵,吳開(kāi)貴,吳長(zhǎng)澤.基于 Hadoop的校園云計(jì)算系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011(6):46-55.
[8]王宏宇.Hadoop平臺(tái)在云計(jì)算中的應(yīng)用[J].軟件,2011(12):33-37.
[9]多雪松,張晶,高強(qiáng).基于 Hadoop的海量數(shù)據(jù)管理系統(tǒng)[J].微計(jì)算機(jī)信息,2010(13):202-205.
[10]楊旻.Hadoop云計(jì)算平臺(tái)在高校試驗(yàn)室教學(xué)環(huán)節(jié)中的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2011(9):2179-2182.
[11]羅軍舟,金嘉暉,宋愛(ài)波,等.云計(jì)算:體系架構(gòu)與關(guān)鍵技術(shù)[J].通信學(xué)報(bào),2011(7):3-21.
[12]江務(wù)學(xué),張璟,王志明.MapReduce并行編程架構(gòu)模型研究[J].微電子學(xué)與計(jì)算機(jī),2011(6):168-175.
[13]孫福權(quán),張達(dá)偉,程勖,等.基于Hadoop企業(yè)私有云存儲(chǔ)平臺(tái)的構(gòu)建[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào):自然科學(xué)版,2011(12):913-916.
[14]崔杰,李陶深,蘭紅星.基于Hadoop的海量數(shù)據(jù)存儲(chǔ)平臺(tái)設(shè)計(jì)開(kāi)發(fā)[J].計(jì)算機(jī)研究與發(fā)展,2012(增刊1):12-17.
[15]李成華,張新訪,金海,等.MapReduce:新型的分布式并行計(jì)算編程模型[J].計(jì)算機(jī)工程與科學(xué),2011(33):129-135.