王 研, 張 巖
(1. 沈陽師范大學 教育技術學院, 沈陽 110034; 2. 中國醫科大學 生物醫學工程系, 沈陽 110013;3. 沈陽師范大學 計算機與數學基礎教學部, 沈陽 110034)
?
基于Hadoop的云平臺的實現與基準測試
王 研1,2, 張 巖3
(1. 沈陽師范大學 教育技術學院, 沈陽 110034; 2. 中國醫科大學 生物醫學工程系, 沈陽 110013;3. 沈陽師范大學 計算機與數學基礎教學部, 沈陽 110034)
Hadoop 是google云計算理論的開源實現,作為軟件系統中間件的軟件框架,它可以對大量數據進行分布式處理。通過Haddop,用戶可以在不了解分布式底層細節的情況下開發分布式程序,充分利用集群的威力進行高速運算和存儲。通過使用VMware虛擬機技術實現在單機上配置多個虛擬計算機節點,從而進行集群測試;在虛擬節點上安裝Ubuntu操作系統作為Hadoop的操作系統支持;同時,利用Xmanager軟件,以及配置局域網中宿主機與虛擬機、遠程控制機的網絡參數,實現對虛擬節點的遠程控制;在已經安裝好Ubuntu操作系統的各個虛擬節點上安裝Hadoop、java-JDK等軟件,并進行相關的參數設置,實現在虛擬機上各個虛擬節點的Hadoop完全分布式平臺。最后在Hadoop平臺上,使用Hadoop軟件自帶的基準測試程序包對平臺進行4個Hadoop的經典基準測試。同時,每個測試都會加載不同的數據量及負載進行多次實驗,通過比較在不同的負載下Hadoop的基準測試結果,測試Hadoop平臺的相關性能,并分析負載及數據量的變化對Hadoop平臺性能的影響。
云計算; Hadoop; 基準測試; 虛擬機
云計算的核心思想是將分布在網絡上的若干計算機組成一個集群,將大量用網絡連接的計算機資源統一管理和調度,構成一個計算資源池向用戶提供所需的服務。而底層的技術對于上層用戶完全透明,對于用戶來說,就好像使用一臺服務器來提供服務一樣。隨著網絡技術的發展與大數據的應用越來越普及,云計算技術在更多更廣泛的領域受到了人們的重視。Hadoop作為云計算技術的一種實現方法,具有成本低,安全性高等優點。同時,Hadoop框架作為一種開源的中間件技術,允許用戶在Hadoop框架之上實現自己的應用邏輯,具有可擴展,開源性,普及性等優點。因此研究Hadoop平臺的實現方法以及測試平臺性能有著現實意義。本文將研究Hadoop平臺在虛擬機上的實現,同時進行Hadoop平臺的基準測試,并對測試結果進行分析。
1.1 實驗軟硬件配置
聯想電腦2臺,1臺作為linux虛擬系統的宿主機,1臺作為遠程控制終端機。軟硬件配置見表1。

表1 實驗平臺軟硬件配置
1.2 虛擬機設置

表2 各節點IP地址
在宿主機上安裝VMware軟件,由VMware虛擬出4個計算機節點。計算機節點操作系統采用Ubuntu12.04 server。本實驗采用1個Master節點和3個Slave節點,可以先安裝一個Master節點,并配置相關參數。再使用VMware的克隆功能克隆出3個Slave節點。同時對虛擬機的網絡進行相應的配置使得虛擬節點之間能夠進行網絡通信。將VMware的虛擬網絡適配器設置為Bridge(橋接)方式,這樣可以給虛擬機分配一個與宿主機以及遠程終端機相同網段的IP地址,實現多臺主機連接,本實驗使用網段為192.168.52.X。具體IP地址如表2所示。
1.3 在終端機上實現遠程控制虛擬機
在終端機上安裝Xmanager軟件。Xmanager是一款小巧、便捷的瀏覽遠端窗口系統的工具,通過對Xmanager進行簡單的配置,即可實現將網絡中的某臺計算機作為遠程控制終端,進行遠程控制虛擬機里的各個節點的功能,同時還可以利用Xmanager自帶的ftp工具實現虛擬節點與控制終端之間的文件傳輸。通過Xmanager,建立對4個虛擬機節點的連接,連接協議選擇SSH,在主機名稱里分別輸入4臺虛擬節點對應的IP地址,并配置帳號與密碼。連接后即可通過終端遠程控制虛擬節點。接下來的操作均在遠程終端輸入。
1.4 安裝配置Hadoop與JDK
1.4.1 JDK參數配置
安裝好JDK后在/etc/profile中配置環境變量。
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參數配置
在Hadoop安裝目錄下的conf里,根據系統情況修改6個配置文件:Hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,Masters,Slaves。其中在hdfs-site.xml文件里將數據副本數設置為2。
〈configuration〉
〈roperty〉
〈ame〉fs.replication〈name〉〈-dfs里數據的片段份數,即有無副本--〉
〈alue〉〈value〉property〉
〈configuration〉
同時,在/etc/network/interfaces文件中配置主機的IP地址并在/etc/hosts文件中配置DNS。配置好Master節點后,對Slave各節點也進行相應的配置。
1.5 配置各節點的SSH協議
SSH為Secure Shell的縮寫,是建立在應用層和傳輸層基礎上的安全協議,專為遠程登錄會話和其他網絡服務提供安全性保障。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。在本實驗中中的使用SSH協議可以使得節點之間可以免密碼登錄。
首先對4個節點分別產生公私密鑰,設置本地無密碼登錄。然后讓4個節點里的authorized_keys都包含4個節點的公鑰。為了實現這個功能,可以先將Slave1、Slave2、Slave3中的id_dsa.pub分別復制到Master下,再追加到Master的authorized_keys里,最后把這個authorized_keys復制回Slave1,Slave2、Slave3替換原來的authorized_keys。配置完成后,即可實現免密碼連接其他節點。
1.6 查看集群運行情況
在Master節點輸入命令start-all.sh啟動Hadoop集群守護進程。
在各個節點輸入命令jps可以查看各節點守護進程情況(見圖1、圖2)。
root@master: ~# jps
10894 SeconaryNameNode
10712 NameNode
10976 JobTracker
11099 Jps
圖1 Master節點守護進程
root@slavel: ~# jps
13136 Jps
12956 DataNode
13043 TaskTracker
圖2 各Slave節點守護進程
在Master節點運行hadoop dfsadmin-report可以查看集群情況。
在Master節點運行hadoop fsck加上相關參數,可以查看HDFS文件系統情況。
為了深入研究Hadoop平臺性能,需要對完成的Hadoop平臺進行相關的測試。本文采用Hadoop最常用的幾個基準測試程序進行測試,并對測試結果進行分析。
2.1 TestDFSIO測試
TestDFSIO用于測試HDFS的IO性能,使用一個MapReduce作業來并發地執行讀寫操作,每個map任務用于讀或寫一個文件,Map的輸出用于收集與處理文件相關的統計信息,Reduce用于累積統計信息,并產生Summary。本實驗分別在文件數量相同(單個文件)但數據大小不同,以及數據總量相同但文件數量不同的情況下進行了測試。
2.1.1 對5個文件(1 G~20 G)執行TestDFSIO測試
測試結果(見表3、表4)表明,在集群較小的情況下,對單個文件測試時,IO讀寫時間隨數據量增加而呈曲線增加,并且讀時間要低于寫時間;同時讀寫吞吐量隨數據量增加而減少(見圖4)。

表3 單個文件寫測試

表4 單個文件讀測試

圖3 單個文件TestDFSIO測試結果
2.1.2 對數據總量相同(10 G)但文件數量不同(1~20)的數據執行5次TestDFSIO測試
測試結果表明,在集群較小的情況下,雖然數據總量保持不變(10 G),但隨著文件數量、并發map數量的增加,平臺執行性能逐漸降低,其中當文件數由2個增加到5個時,寫測試的執行時間增加明顯,當文件數再次增加時,執行時間趨于穩定;而讀測試的執行時間隨文件數量增加顯著增長。

表5 總數據10G文件數量不同的寫測試

表6 總數據10G文件數量不同的讀測試

圖4 總數據10G、文件數量不同時的TestDFSIO測試結果
2.2 mrbench測試
mrbench會多次重復執行一個小作業,用于檢查在集群上小作業的運行是否可重復以及運行是否高效。本實驗使用mrbench程序分別進行重復執行小作業測試,結果如表7所示。

表7 mrbench測試結果

圖5 mrbench測試結果
從測試結果可以看出,隨著小作業從數量的增加,作業執行的平均時間逐漸趨于穩定并緩慢下降。
2.3 WordCount
WordCount主要完成功能是統計一系列文本文件中每個單詞出現的次數。本實驗使用WordCount程序分別對100M、200M、500M、1G、2G大小的文件進行測試。

表8 WordCount測試結果

圖6 WordCount測試結果
測試結果表明,隨著數據量的增加, WordCount程序執行時間呈曲線增加。
2.4 TeraSort
TeraSort程序通過對文本文件里的字符進行排序來測試Hadoop平臺的性能。實驗分別對100M,200M,500M,1G,2G的文件進行排序測試。

表9 TeraSort測試結果

圖7 Terasort測試結果
測試結果表明,隨著數據量的增加,Terasort程序執行時間呈曲線增加。
本文在介紹了虛擬機上實現Hadoop完全分布平臺的全部過程,同時在實現的Hadoop平臺上進行了一系列的基準測試,并對測試得到的數據結果進行了分析。從測試中可以看到,隨著測試數據量的增大,Hadoop平臺的優勢開始慢慢顯現出來。當然,實驗只是在虛擬機上進行了平臺實現與測試,數據量與真實情況仍有一定差距。在實際生產應用中,Hadoop平臺的集群網絡規模與服務器性能都非常強大,處理的都是TB甚至PB級別的數據。本實驗起到了對Hadoop平臺實現與測試分析的研究作用,后續還需要在實際的計算機集群網絡甚至服務器上進行進一步的測試與研究。在此基礎上,還可以對Hadoop軟件架構的參數配置文件、實現算法等方面做進一步的優化研究。
[ 1 ]WHITE T. Hadoop權威指南[M]. 3版. 北京:清華大學出版社, 2014.
[ 2 ]ARUN C M, VAVILAPALLI V K, EADLINE D, et al. Hadoop YARN權威指南[M]. 北京:機械工業出版社, 2015.
[ 3 ]HOLMES A. Hadoop硬實戰[M]. 北京:電子工業出版社, 2015.
[ 4 ]崔文斌,牟少敏,王云誠,等. Hadoop大數據平臺的搭建與測試[J]. 山東農業大學學報(自然科學版), 2013,44(4):550-555.
[ 5 ]張新玲. Hadoop平臺基準性能測試研究[J]. 軟件導刊, 2015,14(1):30-32.
[ 6 ]張巖,郭松,趙國海. 基于Hadoop的云計算試驗平臺搭建研究[J]. 沈陽師范大學學報(自然科學版), 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的實驗室數據管理系統的實現[J]. 電腦編程技巧與維護, 2014(4):39-40.
[ 9 ]潘慧,朱信忠,趙建民,等. 基于Hadoop云測試體系架構的設計[J]. 計算機工程與科學, 2013,35(10):73-78.
[10]徐東. 基于Hadoop的云教學資源平臺設計與實現[D]. 北京:北京交通大學, 2014.
[11]張洪磊. 基于Hadoop的醫院數據中心系統設計與實現[D]. 杭州:浙江大學, 2014.
[12]劉源. 基于Hadoop的海量數據分析系統設計與實現[D]. 大連:大連理工大學, 2013.
[13]張朋,常靜,范福玲. 云計算與高等院校教育信息化變革研究[J]. 科教文匯(上旬刊), 2012(9):24-25.
[14]李丹. 校園分布式系統集成管理平臺的設計與實現[J].電子測試, 2013(13):3-4.
[15]潘丹,甘宏. 基于異構集群環境下Hadoop作業調度優化的研究[J]. 科技廣場, 2015(9):16-19.
[16]尹穎,林慶,林涵陽. HDFS中高效存儲小文件的方法[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。
遼寧省科技廳自然科學基金資助項目(201202197)。
王 研(1981-),男,遼寧沈陽人,沈陽師范大學碩士研究生,中國醫科大學講師; 通信作者: 張 巖(1968-),女,遼寧沈陽人,沈陽師范大學教授,碩士。
1673-5862(2016)02-0240-06
TP311
A
10.3969/ j.issn.1673-5862.2016.02.023