王 研, 張 巖
(1. 沈陽(yáng)師范大學(xué) 教育技術(shù)學(xué)院, 沈陽(yáng) 110034; 2. 中國(guó)醫(yī)科大學(xué) 生物醫(yī)學(xué)工程系, 沈陽(yáng) 110013;3. 沈陽(yáng)師范大學(xué) 計(jì)算機(jī)與數(shù)學(xué)基礎(chǔ)教學(xué)部, 沈陽(yáng) 110034)
?
基于Hadoop的云平臺(tái)的實(shí)現(xiàn)與基準(zhǔn)測(cè)試
王 研1,2, 張 巖3
(1. 沈陽(yáng)師范大學(xué) 教育技術(shù)學(xué)院, 沈陽(yáng) 110034; 2. 中國(guó)醫(yī)科大學(xué) 生物醫(yī)學(xué)工程系, 沈陽(yáng) 110013;3. 沈陽(yáng)師范大學(xué) 計(jì)算機(jī)與數(shù)學(xué)基礎(chǔ)教學(xué)部, 沈陽(yáng) 110034)
Hadoop 是google云計(jì)算理論的開(kāi)源實(shí)現(xiàn),作為軟件系統(tǒng)中間件的軟件框架,它可以對(duì)大量數(shù)據(jù)進(jìn)行分布式處理。通過(guò)Haddop,用戶可以在不了解分布式底層細(xì)節(jié)的情況下開(kāi)發(fā)分布式程序,充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。通過(guò)使用VMware虛擬機(jī)技術(shù)實(shí)現(xiàn)在單機(jī)上配置多個(gè)虛擬計(jì)算機(jī)節(jié)點(diǎn),從而進(jìn)行集群測(cè)試;在虛擬節(jié)點(diǎn)上安裝Ubuntu操作系統(tǒng)作為Hadoop的操作系統(tǒng)支持;同時(shí),利用Xmanager軟件,以及配置局域網(wǎng)中宿主機(jī)與虛擬機(jī)、遠(yuǎn)程控制機(jī)的網(wǎng)絡(luò)參數(shù),實(shí)現(xiàn)對(duì)虛擬節(jié)點(diǎn)的遠(yuǎn)程控制;在已經(jīng)安裝好Ubuntu操作系統(tǒng)的各個(gè)虛擬節(jié)點(diǎn)上安裝Hadoop、java-JDK等軟件,并進(jìn)行相關(guān)的參數(shù)設(shè)置,實(shí)現(xiàn)在虛擬機(jī)上各個(gè)虛擬節(jié)點(diǎn)的Hadoop完全分布式平臺(tái)。最后在Hadoop平臺(tái)上,使用Hadoop軟件自帶的基準(zhǔn)測(cè)試程序包對(duì)平臺(tái)進(jìn)行4個(gè)Hadoop的經(jīng)典基準(zhǔn)測(cè)試。同時(shí),每個(gè)測(cè)試都會(huì)加載不同的數(shù)據(jù)量及負(fù)載進(jìn)行多次實(shí)驗(yàn),通過(guò)比較在不同的負(fù)載下Hadoop的基準(zhǔn)測(cè)試結(jié)果,測(cè)試Hadoop平臺(tái)的相關(guān)性能,并分析負(fù)載及數(shù)據(jù)量的變化對(duì)Hadoop平臺(tái)性能的影響。
云計(jì)算; Hadoop; 基準(zhǔn)測(cè)試; 虛擬機(jī)
云計(jì)算的核心思想是將分布在網(wǎng)絡(luò)上的若干計(jì)算機(jī)組成一個(gè)集群,將大量用網(wǎng)絡(luò)連接的計(jì)算機(jī)資源統(tǒng)一管理和調(diào)度,構(gòu)成一個(gè)計(jì)算資源池向用戶提供所需的服務(wù)。而底層的技術(shù)對(duì)于上層用戶完全透明,對(duì)于用戶來(lái)說(shuō),就好像使用一臺(tái)服務(wù)器來(lái)提供服務(wù)一樣。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展與大數(shù)據(jù)的應(yīng)用越來(lái)越普及,云計(jì)算技術(shù)在更多更廣泛的領(lǐng)域受到了人們的重視。Hadoop作為云計(jì)算技術(shù)的一種實(shí)現(xiàn)方法,具有成本低,安全性高等優(yōu)點(diǎn)。同時(shí),Hadoop框架作為一種開(kāi)源的中間件技術(shù),允許用戶在Hadoop框架之上實(shí)現(xiàn)自己的應(yīng)用邏輯,具有可擴(kuò)展,開(kāi)源性,普及性等優(yōu)點(diǎn)。因此研究Hadoop平臺(tái)的實(shí)現(xiàn)方法以及測(cè)試平臺(tái)性能有著現(xiàn)實(shí)意義。本文將研究Hadoop平臺(tái)在虛擬機(jī)上的實(shí)現(xiàn),同時(shí)進(jìn)行Hadoop平臺(tái)的基準(zhǔn)測(cè)試,并對(duì)測(cè)試結(jié)果進(jìn)行分析。
1.1 實(shí)驗(yàn)軟硬件配置
聯(lián)想電腦2臺(tái),1臺(tái)作為linux虛擬系統(tǒng)的宿主機(jī),1臺(tái)作為遠(yuǎn)程控制終端機(jī)。軟硬件配置見(jiàn)表1。
表1 實(shí)驗(yàn)平臺(tái)軟硬件配置
1.2 虛擬機(jī)設(shè)置
表2 各節(jié)點(diǎn)IP地址
在宿主機(jī)上安裝VMware軟件,由VMware虛擬出4個(gè)計(jì)算機(jī)節(jié)點(diǎn)。計(jì)算機(jī)節(jié)點(diǎn)操作系統(tǒng)采用Ubuntu12.04 server。本實(shí)驗(yàn)采用1個(gè)Master節(jié)點(diǎn)和3個(gè)Slave節(jié)點(diǎn),可以先安裝一個(gè)Master節(jié)點(diǎn),并配置相關(guān)參數(shù)。再使用VMware的克隆功能克隆出3個(gè)Slave節(jié)點(diǎn)。同時(shí)對(duì)虛擬機(jī)的網(wǎng)絡(luò)進(jìn)行相應(yīng)的配置使得虛擬節(jié)點(diǎn)之間能夠進(jìn)行網(wǎng)絡(luò)通信。將VMware的虛擬網(wǎng)絡(luò)適配器設(shè)置為Bridge(橋接)方式,這樣可以給虛擬機(jī)分配一個(gè)與宿主機(jī)以及遠(yuǎn)程終端機(jī)相同網(wǎng)段的IP地址,實(shí)現(xiàn)多臺(tái)主機(jī)連接,本實(shí)驗(yàn)使用網(wǎng)段為192.168.52.X。具體IP地址如表2所示。
1.3 在終端機(jī)上實(shí)現(xiàn)遠(yuǎn)程控制虛擬機(jī)
在終端機(jī)上安裝Xmanager軟件。Xmanager是一款小巧、便捷的瀏覽遠(yuǎn)端窗口系統(tǒng)的工具,通過(guò)對(duì)Xmanager進(jìn)行簡(jiǎn)單的配置,即可實(shí)現(xiàn)將網(wǎng)絡(luò)中的某臺(tái)計(jì)算機(jī)作為遠(yuǎn)程控制終端,進(jìn)行遠(yuǎn)程控制虛擬機(jī)里的各個(gè)節(jié)點(diǎn)的功能,同時(shí)還可以利用Xmanager自帶的ftp工具實(shí)現(xiàn)虛擬節(jié)點(diǎn)與控制終端之間的文件傳輸。通過(guò)Xmanager,建立對(duì)4個(gè)虛擬機(jī)節(jié)點(diǎn)的連接,連接協(xié)議選擇SSH,在主機(jī)名稱里分別輸入4臺(tái)虛擬節(jié)點(diǎn)對(duì)應(yīng)的IP地址,并配置帳號(hào)與密碼。連接后即可通過(guò)終端遠(yuǎn)程控制虛擬節(jié)點(diǎn)。接下來(lái)的操作均在遠(yuǎn)程終端輸入。
1.4 安裝配置Hadoop與JDK
1.4.1 JDK參數(shù)配置
安裝好JDK后在/etc/profile中配置環(huán)境變量。
export JAVA_HOME=/usr/java/JDK1.7.0_45
export HADOOP_HOME=/usr/Hadoop/Hadoop-1.2.1
export JAVA_BIN=/usr/java/JDK1.7.0_45/bin
export PATH=$PATH:$JAVA_HOME/bin: $HADOOP_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
1.4.2 Hadoop參數(shù)配置
在Hadoop安裝目錄下的conf里,根據(jù)系統(tǒng)情況修改6個(gè)配置文件:Hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,Masters,Slaves。其中在hdfs-site.xml文件里將數(shù)據(jù)副本數(shù)設(shè)置為2。
〈configuration〉
〈roperty〉
〈ame〉fs.replication〈name〉〈-dfs里數(shù)據(jù)的片段份數(shù),即有無(wú)副本--〉
〈alue〉〈value〉property〉
〈configuration〉
同時(shí),在/etc/network/interfaces文件中配置主機(jī)的IP地址并在/etc/hosts文件中配置DNS。配置好Master節(jié)點(diǎn)后,對(duì)Slave各節(jié)點(diǎn)也進(jìn)行相應(yīng)的配置。
1.5 配置各節(jié)點(diǎn)的SSH協(xié)議
SSH為Secure Shell的縮寫,是建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性保障。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過(guò)程中的信息泄露問(wèn)題。在本實(shí)驗(yàn)中中的使用SSH協(xié)議可以使得節(jié)點(diǎn)之間可以免密碼登錄。
首先對(duì)4個(gè)節(jié)點(diǎn)分別產(chǎn)生公私密鑰,設(shè)置本地?zé)o密碼登錄。然后讓4個(gè)節(jié)點(diǎn)里的authorized_keys都包含4個(gè)節(jié)點(diǎn)的公鑰。為了實(shí)現(xiàn)這個(gè)功能,可以先將Slave1、Slave2、Slave3中的id_dsa.pub分別復(fù)制到Master下,再追加到Master的authorized_keys里,最后把這個(gè)authorized_keys復(fù)制回Slave1,Slave2、Slave3替換原來(lái)的authorized_keys。配置完成后,即可實(shí)現(xiàn)免密碼連接其他節(jié)點(diǎn)。
1.6 查看集群運(yùn)行情況
在Master節(jié)點(diǎn)輸入命令start-all.sh啟動(dòng)Hadoop集群守護(hù)進(jìn)程。
在各個(gè)節(jié)點(diǎn)輸入命令jps可以查看各節(jié)點(diǎn)守護(hù)進(jìn)程情況(見(jiàn)圖1、圖2)。
root@master: ~# jps
10894 SeconaryNameNode
10712 NameNode
10976 JobTracker
11099 Jps
圖1 Master節(jié)點(diǎn)守護(hù)進(jìn)程
root@slavel: ~# jps
13136 Jps
12956 DataNode
13043 TaskTracker
圖2 各Slave節(jié)點(diǎn)守護(hù)進(jìn)程
在Master節(jié)點(diǎn)運(yùn)行hadoop dfsadmin-report可以查看集群情況。
在Master節(jié)點(diǎn)運(yùn)行hadoop fsck加上相關(guān)參數(shù),可以查看HDFS文件系統(tǒng)情況。
為了深入研究Hadoop平臺(tái)性能,需要對(duì)完成的Hadoop平臺(tái)進(jìn)行相關(guān)的測(cè)試。本文采用Hadoop最常用的幾個(gè)基準(zhǔn)測(cè)試程序進(jìn)行測(cè)試,并對(duì)測(cè)試結(jié)果進(jìn)行分析。
2.1 TestDFSIO測(cè)試
TestDFSIO用于測(cè)試HDFS的IO性能,使用一個(gè)MapReduce作業(yè)來(lái)并發(fā)地執(zhí)行讀寫操作,每個(gè)map任務(wù)用于讀或?qū)懸粋€(gè)文件,Map的輸出用于收集與處理文件相關(guān)的統(tǒng)計(jì)信息,Reduce用于累積統(tǒng)計(jì)信息,并產(chǎn)生Summary。本實(shí)驗(yàn)分別在文件數(shù)量相同(單個(gè)文件)但數(shù)據(jù)大小不同,以及數(shù)據(jù)總量相同但文件數(shù)量不同的情況下進(jìn)行了測(cè)試。
2.1.1 對(duì)5個(gè)文件(1 G~20 G)執(zhí)行TestDFSIO測(cè)試
測(cè)試結(jié)果(見(jiàn)表3、表4)表明,在集群較小的情況下,對(duì)單個(gè)文件測(cè)試時(shí),IO讀寫時(shí)間隨數(shù)據(jù)量增加而呈曲線增加,并且讀時(shí)間要低于寫時(shí)間;同時(shí)讀寫吞吐量隨數(shù)據(jù)量增加而減少(見(jiàn)圖4)。
表3 單個(gè)文件寫測(cè)試
表4 單個(gè)文件讀測(cè)試
圖3 單個(gè)文件TestDFSIO測(cè)試結(jié)果
2.1.2 對(duì)數(shù)據(jù)總量相同(10 G)但文件數(shù)量不同(1~20)的數(shù)據(jù)執(zhí)行5次TestDFSIO測(cè)試
測(cè)試結(jié)果表明,在集群較小的情況下,雖然數(shù)據(jù)總量保持不變(10 G),但隨著文件數(shù)量、并發(fā)map數(shù)量的增加,平臺(tái)執(zhí)行性能逐漸降低,其中當(dāng)文件數(shù)由2個(gè)增加到5個(gè)時(shí),寫測(cè)試的執(zhí)行時(shí)間增加明顯,當(dāng)文件數(shù)再次增加時(shí),執(zhí)行時(shí)間趨于穩(wěn)定;而讀測(cè)試的執(zhí)行時(shí)間隨文件數(shù)量增加顯著增長(zhǎng)。
表5 總數(shù)據(jù)10G文件數(shù)量不同的寫測(cè)試
表6 總數(shù)據(jù)10G文件數(shù)量不同的讀測(cè)試
圖4 總數(shù)據(jù)10G、文件數(shù)量不同時(shí)的TestDFSIO測(cè)試結(jié)果
2.2 mrbench測(cè)試
mrbench會(huì)多次重復(fù)執(zhí)行一個(gè)小作業(yè),用于檢查在集群上小作業(yè)的運(yùn)行是否可重復(fù)以及運(yùn)行是否高效。本實(shí)驗(yàn)使用mrbench程序分別進(jìn)行重復(fù)執(zhí)行小作業(yè)測(cè)試,結(jié)果如表7所示。
表7 mrbench測(cè)試結(jié)果
圖5 mrbench測(cè)試結(jié)果
從測(cè)試結(jié)果可以看出,隨著小作業(yè)從數(shù)量的增加,作業(yè)執(zhí)行的平均時(shí)間逐漸趨于穩(wěn)定并緩慢下降。
2.3 WordCount
WordCount主要完成功能是統(tǒng)計(jì)一系列文本文件中每個(gè)單詞出現(xiàn)的次數(shù)。本實(shí)驗(yàn)使用WordCount程序分別對(duì)100M、200M、500M、1G、2G大小的文件進(jìn)行測(cè)試。
表8 WordCount測(cè)試結(jié)果
圖6 WordCount測(cè)試結(jié)果
測(cè)試結(jié)果表明,隨著數(shù)據(jù)量的增加, WordCount程序執(zhí)行時(shí)間呈曲線增加。
2.4 TeraSort
TeraSort程序通過(guò)對(duì)文本文件里的字符進(jìn)行排序來(lái)測(cè)試Hadoop平臺(tái)的性能。實(shí)驗(yàn)分別對(duì)100M,200M,500M,1G,2G的文件進(jìn)行排序測(cè)試。
表9 TeraSort測(cè)試結(jié)果
圖7 Terasort測(cè)試結(jié)果
測(cè)試結(jié)果表明,隨著數(shù)據(jù)量的增加,Terasort程序執(zhí)行時(shí)間呈曲線增加。
本文在介紹了虛擬機(jī)上實(shí)現(xiàn)Hadoop完全分布平臺(tái)的全部過(guò)程,同時(shí)在實(shí)現(xiàn)的Hadoop平臺(tái)上進(jìn)行了一系列的基準(zhǔn)測(cè)試,并對(duì)測(cè)試得到的數(shù)據(jù)結(jié)果進(jìn)行了分析。從測(cè)試中可以看到,隨著測(cè)試數(shù)據(jù)量的增大,Hadoop平臺(tái)的優(yōu)勢(shì)開(kāi)始慢慢顯現(xiàn)出來(lái)。當(dāng)然,實(shí)驗(yàn)只是在虛擬機(jī)上進(jìn)行了平臺(tái)實(shí)現(xiàn)與測(cè)試,數(shù)據(jù)量與真實(shí)情況仍有一定差距。在實(shí)際生產(chǎn)應(yīng)用中,Hadoop平臺(tái)的集群網(wǎng)絡(luò)規(guī)模與服務(wù)器性能都非常強(qiáng)大,處理的都是TB甚至PB級(jí)別的數(shù)據(jù)。本實(shí)驗(yàn)起到了對(duì)Hadoop平臺(tái)實(shí)現(xiàn)與測(cè)試分析的研究作用,后續(xù)還需要在實(shí)際的計(jì)算機(jī)集群網(wǎng)絡(luò)甚至服務(wù)器上進(jìn)行進(jìn)一步的測(cè)試與研究。在此基礎(chǔ)上,還可以對(duì)Hadoop軟件架構(gòu)的參數(shù)配置文件、實(shí)現(xiàn)算法等方面做進(jìn)一步的優(yōu)化研究。
[ 1 ]WHITE T. Hadoop權(quán)威指南[M]. 3版. 北京:清華大學(xué)出版社, 2014.
[ 2 ]ARUN C M, VAVILAPALLI V K, EADLINE D, et al. Hadoop YARN權(quán)威指南[M]. 北京:機(jī)械工業(yè)出版社, 2015.
[ 3 ]HOLMES A. Hadoop硬實(shí)戰(zhàn)[M]. 北京:電子工業(yè)出版社, 2015.
[ 4 ]崔文斌,牟少敏,王云誠(chéng),等. Hadoop大數(shù)據(jù)平臺(tái)的搭建與測(cè)試[J]. 山東農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版), 2013,44(4):550-555.
[ 5 ]張新玲. Hadoop平臺(tái)基準(zhǔn)性能測(cè)試研究[J]. 軟件導(dǎo)刊, 2015,14(1):30-32.
[ 6 ]張巖,郭松,趙國(guó)海. 基于Hadoop的云計(jì)算試驗(yàn)平臺(tái)搭建研究[J]. 沈陽(yáng)師范大學(xué)學(xué)報(bào)(自然科學(xué)版), 2013,31(1):85-89.
[ 7 ]李三淼,李龍澍. Hadoop中處理小文件的四種方法的性能分析[EB/OL].[2015-11-13]. http:∥www.cnki.net/kcms/detail/11.2127.TP.20141230.1656.014.html.
[ 8 ]管瑩,李佳音. 基于Hadoop的實(shí)驗(yàn)室數(shù)據(jù)管理系統(tǒng)的實(shí)現(xiàn)[J]. 電腦編程技巧與維護(hù), 2014(4):39-40.
[ 9 ]潘慧,朱信忠,趙建民,等. 基于Hadoop云測(cè)試體系架構(gòu)的設(shè)計(jì)[J]. 計(jì)算機(jī)工程與科學(xué), 2013,35(10):73-78.
[10]徐東. 基于Hadoop的云教學(xué)資源平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京交通大學(xué), 2014.
[11]張洪磊. 基于Hadoop的醫(yī)院數(shù)據(jù)中心系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 杭州:浙江大學(xué), 2014.
[12]劉源. 基于Hadoop的海量數(shù)據(jù)分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 大連:大連理工大學(xué), 2013.
[13]張朋,常靜,范福玲. 云計(jì)算與高等院校教育信息化變革研究[J]. 科教文匯(上旬刊), 2012(9):24-25.
[14]李丹. 校園分布式系統(tǒng)集成管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)試, 2013(13):3-4.
[15]潘丹,甘宏. 基于異構(gòu)集群環(huán)境下Hadoop作業(yè)調(diào)度優(yōu)化的研究[J]. 科技廣場(chǎng), 2015(9):16-19.
[16]尹穎,林慶,林涵陽(yáng). HDFS中高效存儲(chǔ)小文件的方法[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2015(2):406-409.
Implementation and benchmarking of cloud platform based on Hadoop
WANGYan1,2,ZHANGYan3
(1. School of Educational Technology, Shenyang Normal University, Shenyang 110034, China; 2. Department of Biomedical Engineering, China Medical University, Shenyang 110013, China; 3. Computer and Basic Mathematics Education Department, Shenyang Normal University, Shenyang 110034, China)
Hadoop is an open source implementation of Google cloud computing theory. Hadoop, as a software framework, can process a large amount with distributed processing. By using Hadoop, users can develop a distributed program, and make full use of the cluster to carry out high-speed computing and storage, even without knowing the details of the distributed layer. In this paper, we use VMware virtual machine technology to realize the configuration of multiple virtual computer nodes on a single machine, and then use it to carry out the cluster test. As the Hadoop's operating system, Ubuntu operating system is installed on virtual nodes; meanwhile, with the help of Xmanager software, host computer and virtual machine, as well as referring to network parameters from the remote controller, the remote control of virtual nodes is realized. In the Ubuntu operating system, Hadoop, java-JDK, and other software are installed on each virtual node. The relevant parameter configuration is set up to realize the complete distributed platform of Hadoop in the virtual machine. Finally, the benchmark program package, included with the Hadoop software, do 4 Hadoop benchmark tests were carried out on the platform. In the same time, each test will load a number of different data and load for many experiments. By comparing the results of the benchmark test from different load Hadoop, performance of Hadoop platform was tested, and the impact of load and data on the Hadoop platform also is analyzed.
cloud computing; Hadoop; Benchmark test; Virtual machine
2015-12-03。
遼寧省科技廳自然科學(xué)基金資助項(xiàng)目(201202197)。
王 研(1981-),男,遼寧沈陽(yáng)人,沈陽(yáng)師范大學(xué)碩士研究生,中國(guó)醫(yī)科大學(xué)講師; 通信作者: 張 巖(1968-),女,遼寧沈陽(yáng)人,沈陽(yáng)師范大學(xué)教授,碩士。
1673-5862(2016)02-0240-06
TP311
A
10.3969/ j.issn.1673-5862.2016.02.023