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