王 研, 張 巖
(1. 沈陽師范大學(xué) 教育技術(shù)學(xué)院, 沈陽 110034; 2. 中國醫(yī)科大學(xué) 生物醫(yī)學(xué)工程系, 沈陽 110013;3. 沈陽師范大學(xué) 計算機(jī)與數(shù)學(xué)基礎(chǔ)教學(xué)部, 沈陽 110034)
?
基于Hadoop的云平臺的實(shí)現(xiàn)與基準(zhǔn)測試
王 研1,2, 張 巖3
(1. 沈陽師范大學(xué) 教育技術(shù)學(xué)院, 沈陽 110034; 2. 中國醫(yī)科大學(xué) 生物醫(yī)學(xué)工程系, 沈陽 110013;3. 沈陽師范大學(xué) 計算機(jī)與數(shù)學(xué)基礎(chǔ)教學(xué)部, 沈陽 110034)
Hadoop 是google云計算理論的開源實(shí)現(xiàn),作為軟件系統(tǒng)中間件的軟件框架,它可以對大量數(shù)據(jù)進(jìn)行分布式處理。通過Haddop,用戶可以在不了解分布式底層細(xì)節(jié)的情況下開發(fā)分布式程序,充分利用集群的威力進(jìn)行高速運(yùn)算和存儲。通過使用VMware虛擬機(jī)技術(shù)實(shí)現(xiàn)在單機(jī)上配置多個虛擬計算機(jī)節(jié)點(diǎn),從而進(jìn)行集群測試;在虛擬節(jié)點(diǎn)上安裝Ubuntu操作系統(tǒng)作為Hadoop的操作系統(tǒng)支持;同時,利用Xmanager軟件,以及配置局域網(wǎng)中宿主機(jī)與虛擬機(jī)、遠(yuǎn)程控制機(jī)的網(wǎng)絡(luò)參數(shù),實(shí)現(xiàn)對虛擬節(jié)點(diǎn)的遠(yuǎn)程控制;在已經(jīng)安裝好Ubuntu操作系統(tǒng)的各個虛擬節(jié)點(diǎn)上安裝Hadoop、java-JDK等軟件,并進(jìn)行相關(guān)的參數(shù)設(shè)置,實(shí)現(xiàn)在虛擬機(jī)上各個虛擬節(jié)點(diǎn)的Hadoop完全分布式平臺。最后在Hadoop平臺上,使用Hadoop軟件自帶的基準(zhǔn)測試程序包對平臺進(jìn)行4個Hadoop的經(jīng)典基準(zhǔn)測試。同時,每個測試都會加載不同的數(shù)據(jù)量及負(fù)載進(jìn)行多次實(shí)驗(yàn),通過比較在不同的負(fù)載下Hadoop的基準(zhǔn)測試結(jié)果,測試Hadoop平臺的相關(guān)性能,并分析負(fù)載及數(shù)據(jù)量的變化對Hadoop平臺性能的影響。
云計算; Hadoop; 基準(zhǔn)測試; 虛擬機(jī)
云計算的核心思想是將分布在網(wǎng)絡(luò)上的若干計算機(jī)組成一個集群,將大量用網(wǎng)絡(luò)連接的計算機(jī)資源統(tǒng)一管理和調(diào)度,構(gòu)成一個計算資源池向用戶提供所需的服務(wù)。而底層的技術(shù)對于上層用戶完全透明,對于用戶來說,就好像使用一臺服務(wù)器來提供服務(wù)一樣。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展與大數(shù)據(jù)的應(yīng)用越來越普及,云計算技術(shù)在更多更廣泛的領(lǐng)域受到了人們的重視。Hadoop作為云計算技術(shù)的一種實(shí)現(xiàn)方法,具有成本低,安全性高等優(yōu)點(diǎn)。同時,Hadoop框架作為一種開源的中間件技術(shù),允許用戶在Hadoop框架之上實(shí)現(xiàn)自己的應(yīng)用邏輯,具有可擴(kuò)展,開源性,普及性等優(yōu)點(diǎn)。因此研究Hadoop平臺的實(shí)現(xiàn)方法以及測試平臺性能有著現(xiàn)實(shí)意義。本文將研究Hadoop平臺在虛擬機(jī)上的實(shí)現(xiàn),同時進(jìn)行Hadoop平臺的基準(zhǔn)測試,并對測試結(jié)果進(jìn)行分析。
1.1 實(shí)驗(yàn)軟硬件配置
聯(lián)想電腦2臺,1臺作為linux虛擬系統(tǒng)的宿主機(jī),1臺作為遠(yuǎn)程控制終端機(jī)。軟硬件配置見表1。
表1 實(shí)驗(yàn)平臺軟硬件配置
1.2 虛擬機(jī)設(shè)置
表2 各節(jié)點(diǎn)IP地址
在宿主機(jī)上安裝VMware軟件,由VMware虛擬出4個計算機(jī)節(jié)點(diǎn)。計算機(jī)節(jié)點(diǎn)操作系統(tǒng)采用Ubuntu12.04 server。本實(shí)驗(yàn)采用1個Master節(jié)點(diǎn)和3個Slave節(jié)點(diǎn),可以先安裝一個Master節(jié)點(diǎn),并配置相關(guān)參數(shù)。再使用VMware的克隆功能克隆出3個Slave節(jié)點(diǎn)。同時對虛擬機(jī)的網(wǎng)絡(luò)進(jìn)行相應(yīng)的配置使得虛擬節(jié)點(diǎn)之間能夠進(jìn)行網(wǎng)絡(luò)通信。將VMware的虛擬網(wǎng)絡(luò)適配器設(shè)置為Bridge(橋接)方式,這樣可以給虛擬機(jī)分配一個與宿主機(jī)以及遠(yuǎn)程終端機(jī)相同網(wǎng)段的IP地址,實(shí)現(xiàn)多臺主機(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)的工具,通過對Xmanager進(jìn)行簡單的配置,即可實(shí)現(xiàn)將網(wǎng)絡(luò)中的某臺計算機(jī)作為遠(yuǎn)程控制終端,進(jìn)行遠(yuǎn)程控制虛擬機(jī)里的各個節(jié)點(diǎn)的功能,同時還可以利用Xmanager自帶的ftp工具實(shí)現(xiàn)虛擬節(jié)點(diǎn)與控制終端之間的文件傳輸。通過Xmanager,建立對4個虛擬機(jī)節(jié)點(diǎn)的連接,連接協(xié)議選擇SSH,在主機(jī)名稱里分別輸入4臺虛擬節(jié)點(diǎn)對應(yīng)的IP地址,并配置帳號與密碼。連接后即可通過終端遠(yuǎn)程控制虛擬節(jié)點(diǎn)。接下來的操作均在遠(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個配置文件: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ù),即有無副本--〉
〈alue〉〈value〉property〉
〈configuration〉
同時,在/etc/network/interfaces文件中配置主機(jī)的IP地址并在/etc/hosts文件中配置DNS。配置好Master節(jié)點(diǎn)后,對Slave各節(jié)點(diǎn)也進(jìn)行相應(yīng)的配置。
1.5 配置各節(jié)點(diǎn)的SSH協(xié)議
SSH為Secure Shell的縮寫,是建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議,專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性保障。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。在本實(shí)驗(yàn)中中的使用SSH協(xié)議可以使得節(jié)點(diǎn)之間可以免密碼登錄。
首先對4個節(jié)點(diǎn)分別產(chǎn)生公私密鑰,設(shè)置本地?zé)o密碼登錄。然后讓4個節(jié)點(diǎn)里的authorized_keys都包含4個節(jié)點(diǎn)的公鑰。為了實(shí)現(xiàn)這個功能,可以先將Slave1、Slave2、Slave3中的id_dsa.pub分別復(fù)制到Master下,再追加到Master的authorized_keys里,最后把這個authorized_keys復(fù)制回Slave1,Slave2、Slave3替換原來的authorized_keys。配置完成后,即可實(shí)現(xiàn)免密碼連接其他節(jié)點(diǎn)。
1.6 查看集群運(yùn)行情況
在Master節(jié)點(diǎn)輸入命令start-all.sh啟動Hadoop集群守護(hù)進(jìn)程。
在各個節(jié)點(diǎn)輸入命令jps可以查看各節(jié)點(diǎn)守護(hù)進(jì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平臺性能,需要對完成的Hadoop平臺進(jìn)行相關(guān)的測試。本文采用Hadoop最常用的幾個基準(zhǔn)測試程序進(jìn)行測試,并對測試結(jié)果進(jìn)行分析。
2.1 TestDFSIO測試
TestDFSIO用于測試HDFS的IO性能,使用一個MapReduce作業(yè)來并發(fā)地執(zhí)行讀寫操作,每個map任務(wù)用于讀或?qū)懸粋€文件,Map的輸出用于收集與處理文件相關(guān)的統(tǒng)計信息,Reduce用于累積統(tǒng)計信息,并產(chǎn)生Summary。本實(shí)驗(yàn)分別在文件數(shù)量相同(單個文件)但數(shù)據(jù)大小不同,以及數(shù)據(jù)總量相同但文件數(shù)量不同的情況下進(jìn)行了測試。
2.1.1 對5個文件(1 G~20 G)執(zhí)行TestDFSIO測試
測試結(jié)果(見表3、表4)表明,在集群較小的情況下,對單個文件測試時,IO讀寫時間隨數(shù)據(jù)量增加而呈曲線增加,并且讀時間要低于寫時間;同時讀寫吞吐量隨數(shù)據(jù)量增加而減少(見圖4)。
表3 單個文件寫測試
表4 單個文件讀測試
圖3 單個文件TestDFSIO測試結(jié)果
2.1.2 對數(shù)據(jù)總量相同(10 G)但文件數(shù)量不同(1~20)的數(shù)據(jù)執(zhí)行5次TestDFSIO測試
測試結(jié)果表明,在集群較小的情況下,雖然數(shù)據(jù)總量保持不變(10 G),但隨著文件數(shù)量、并發(fā)map數(shù)量的增加,平臺執(zhí)行性能逐漸降低,其中當(dāng)文件數(shù)由2個增加到5個時,寫測試的執(zhí)行時間增加明顯,當(dāng)文件數(shù)再次增加時,執(zhí)行時間趨于穩(wěn)定;而讀測試的執(zhí)行時間隨文件數(shù)量增加顯著增長。
表5 總數(shù)據(jù)10G文件數(shù)量不同的寫測試
表6 總數(shù)據(jù)10G文件數(shù)量不同的讀測試
圖4 總數(shù)據(jù)10G、文件數(shù)量不同時的TestDFSIO測試結(jié)果
2.2 mrbench測試
mrbench會多次重復(fù)執(zhí)行一個小作業(yè),用于檢查在集群上小作業(yè)的運(yùn)行是否可重復(fù)以及運(yùn)行是否高效。本實(shí)驗(yàn)使用mrbench程序分別進(jìn)行重復(fù)執(zhí)行小作業(yè)測試,結(jié)果如表7所示。
表7 mrbench測試結(jié)果
圖5 mrbench測試結(jié)果
從測試結(jié)果可以看出,隨著小作業(yè)從數(shù)量的增加,作業(yè)執(zhí)行的平均時間逐漸趨于穩(wěn)定并緩慢下降。
2.3 WordCount
WordCount主要完成功能是統(tǒng)計一系列文本文件中每個單詞出現(xiàn)的次數(shù)。本實(shí)驗(yàn)使用WordCount程序分別對100M、200M、500M、1G、2G大小的文件進(jìn)行測試。
表8 WordCount測試結(jié)果
圖6 WordCount測試結(jié)果
測試結(jié)果表明,隨著數(shù)據(jù)量的增加, WordCount程序執(zhí)行時間呈曲線增加。
2.4 TeraSort
TeraSort程序通過對文本文件里的字符進(jìn)行排序來測試Hadoop平臺的性能。實(shí)驗(yàn)分別對100M,200M,500M,1G,2G的文件進(jìn)行排序測試。
表9 TeraSort測試結(jié)果
圖7 Terasort測試結(jié)果
測試結(jié)果表明,隨著數(shù)據(jù)量的增加,Terasort程序執(zhí)行時間呈曲線增加。
本文在介紹了虛擬機(jī)上實(shí)現(xiàn)Hadoop完全分布平臺的全部過程,同時在實(shí)現(xiàn)的Hadoop平臺上進(jìn)行了一系列的基準(zhǔn)測試,并對測試得到的數(shù)據(jù)結(jié)果進(jìn)行了分析。從測試中可以看到,隨著測試數(shù)據(jù)量的增大,Hadoop平臺的優(yōu)勢開始慢慢顯現(xiàn)出來。當(dāng)然,實(shí)驗(yàn)只是在虛擬機(jī)上進(jìn)行了平臺實(shí)現(xiàn)與測試,數(shù)據(jù)量與真實(shí)情況仍有一定差距。在實(shí)際生產(chǎn)應(yīng)用中,Hadoop平臺的集群網(wǎng)絡(luò)規(guī)模與服務(wù)器性能都非常強(qiáng)大,處理的都是TB甚至PB級別的數(shù)據(jù)。本實(shí)驗(yàn)起到了對Hadoop平臺實(shí)現(xiàn)與測試分析的研究作用,后續(xù)還需要在實(shí)際的計算機(jī)集群網(wǎng)絡(luò)甚至服務(wù)器上進(jìn)行進(jìn)一步的測試與研究。在此基礎(chǔ)上,還可以對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 ]崔文斌,牟少敏,王云誠,等. Hadoop大數(shù)據(jù)平臺的搭建與測試[J]. 山東農(nóng)業(yè)大學(xué)學(xué)報(自然科學(xué)版), 2013,44(4):550-555.
[ 5 ]張新玲. Hadoop平臺基準(zhǔn)性能測試研究[J]. 軟件導(dǎo)刊, 2015,14(1):30-32.
[ 6 ]張巖,郭松,趙國海. 基于Hadoop的云計算試驗(yàn)平臺搭建研究[J]. 沈陽師范大學(xué)學(xué)報(自然科學(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云測試體系架構(gòu)的設(shè)計[J]. 計算機(jī)工程與科學(xué), 2013,35(10):73-78.
[10]徐東. 基于Hadoop的云教學(xué)資源平臺設(shè)計與實(shí)現(xiàn)[D]. 北京:北京交通大學(xué), 2014.
[11]張洪磊. 基于Hadoop的醫(yī)院數(shù)據(jù)中心系統(tǒng)設(shè)計與實(shí)現(xiàn)[D]. 杭州:浙江大學(xué), 2014.
[12]劉源. 基于Hadoop的海量數(shù)據(jù)分析系統(tǒng)設(shè)計與實(shí)現(xiàn)[D]. 大連:大連理工大學(xué), 2013.
[13]張朋,常靜,范福玲. 云計算與高等院校教育信息化變革研究[J]. 科教文匯(上旬刊), 2012(9):24-25.
[14]李丹. 校園分布式系統(tǒng)集成管理平臺的設(shè)計與實(shí)現(xiàn)[J].電子測試, 2013(13):3-4.
[15]潘丹,甘宏. 基于異構(gòu)集群環(huán)境下Hadoop作業(yè)調(diào)度優(yōu)化的研究[J]. 科技廣場, 2015(9):16-19.
[16]尹穎,林慶,林涵陽. HDFS中高效存儲小文件的方法[J]. 計算機(jī)工程與設(shè)計, 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-),男,遼寧沈陽人,沈陽師范大學(xué)碩士研究生,中國醫(yī)科大學(xué)講師; 通信作者: 張 巖(1968-),女,遼寧沈陽人,沈陽師范大學(xué)教授,碩士。
1673-5862(2016)02-0240-06
TP311
A
10.3969/ j.issn.1673-5862.2016.02.023