李士果 盧建云



摘要??? 針對發布的Hadoop3.0,本文研究了Hadoop3.0大數據平臺性能。首先,采用華為云服務器搭建大數據平臺;其次,利用Hadoop框架提供的基準性能測試程序進行性能驗證,測試指標包括TestDFSIO、MRBench和TeraSort。最后,對比分析不同負載、不同數據量對平臺性能的影響。實驗結果表明,Hadoop3.0在HDFS讀寫能力、MapReduce計算能力上均表現出較優的性能。
【關鍵詞】大數據 Hadoop3.0 性能測試
1 引言
Hadoop作為開源的分布式系統基礎架構,具有高擴展性、高可靠性、高容錯性、低成本等特性,在政府、金融、工業、教育等領域得到了廣泛的應用。Hadoop平臺發展至今,發布了三個大版本,分別是Hadoop1.0、2.0和3.0。從Hadoop1.0到Hadoop2.0,增加了資源管理系統Yarn,使得Hadoop2.0具有更好的擴展性和性能,并支持多種計算框架。近來,Apache發布了Hadoop3.0版本,該版本在功能和性能方面做了多項改進,使得Hadoop3.0在存儲和計算性能方面得到很大提升。因此,對Hadoop3.0平臺性能進行研究具有重要的實際應用意義。本文基于華為云服務器搭建Hadoop3.0完全分布式集群,使用Hadoop3.0提供的基準測試程序對平臺進行性能測試。分析對比不同負載、不同數據量對Hadoop3.0平臺的性能影響。
2 Hadoop3.0平臺特性
Hadoop是Apache旗下一個頂級分布式計算開源框架項目,主要包括兩個核心組件:分布式存儲子系統HDFS和分布式計算子系統MapReduce。Hadoop采用主/從架構管理存儲和計算。通常,在Hadoop完全分布式集群上,運行了一系列后臺程序。這些后臺程序代表了不同的服務,例如NameNode、DataNode、Secondary NameNode、JobTracker、TaskTracker等。其中NameNode、Secondary NameNode、JobTracker運行在Master節點上,而在每個Worker節點上,部署一個DataNode和TaskTracker,以便這個Worker服務器運行的數據處理程序能盡可能直接處理本機的數據。Hadoop3.0框架如圖1所示。
Hadoop3.0引入了一些重要的特性,如HDFS可擦除編碼技術、支持多NameNode、Yarn基于cgroup的內存和磁盤IO隔離、MR Native Task優化等,綜合性能有很大提升。
3 實驗與結果分析
為了測試Hadoop3.0平臺性能,方便對平臺性能進行調優。實驗采用Hadoop3.0具有代表性的基準測試工具TestDFSIO、MRBench和TeraSort對HDFS讀寫性能、MapReduce并行計算能力進行測試,通過吞吐量、執行時間等指標對測試結果進行分析。
3.1 實驗環境
實驗采用4臺華為云服務器搭建Hadoop3.0完全分布式集群。該集群包含4個節點,其中2個節點部署為Master,全部4個節點作為Worker。Linux操作系統版本是Centos7.4,Java版本是1.8.0_191,Hadoop版本是3.1.0。表1列出了Hadoop3.0完全分布式集群部署信息。
3.2 實驗與分析
3.2.1 TestDFSIO測試Test
DFSIO是Hadoop提供的基準測試工具,用于測試HDFS的讀寫性能。TestDFSIO設計原理是每個文件讀寫都在單獨的Map任務中進行,Map任務以并行方式讀寫文件,Reduce任務用于收集和匯總文件處理性能數據。該實驗數據總量為20G,不斷增加文件數量進行測試。測試結果如圖2和圖3所示。
圖2和圖3表明,在20G數據量保持不變的情況下,隨著文件數量的增加,并發Map數量不斷增加,HDFS讀寫吞吐量和讀寫時間均呈下降趨勢。其中,寫數據的吞吐量明顯低于讀數據的吞吐量,寫數據的執行時間明顯高于讀數據的執行時間。
3.2.2 MRBench測試MRBench
用于檢驗小作業是否可重復高效運行,它通過多次重復執行一個小作業來驗證MapReduce的并行處理性能。本實驗使用MRBench默認配置重復執行小作業進行測試。MRBench配置如下:inputLines=1,mapper=2,reducer=1,分別重復執行10次、50次、100次、200次、500次和1000次,運行結果如圖4所示。
圖4結果顯示,隨著重復執行次數的增加,作業的平均執行時間緩慢下降并趨于穩定。從最后兩次測試結果發現,重復執行500次和1000次的時間相對持平,說明小作業重復執行500次到1000次的性能趨于穩定。
3.2.3 TeraSort測試
TeraSort是Hadoop壓力測試最具代表性的工具之一。TeraSort不僅測試HDFS文件系統的讀寫性能,也是對MapReduce自動排序能力的一種測試。TeraSort包含三個工具,其中TeraGen用來生成排序的隨機數據,TeraSort用來將隨機數據排序,TeraValidate用于校驗TeraSort的排序結果是否正確。實驗分別對1G、2G、5G、10G、20G、50G和100G文件進行TeraSort測試,測試結果如圖5所示。
從圖5可以看出,隨著數據量的增加,TeraSort排序時間呈曲線增長。當數據量在20G以內時,排序時間增長比較緩慢,當數據量增加到50G,甚至100G時,排序時間增長顯著。
5 總結
本文采用華為云服務器搭建Hadoop3.0平臺,利用Hadoop3.0提供的基準測試工具TestDFSIO、MRBench和TereSort對平臺性能進行測試。實驗結果表明,Hadoop3.0大數據平臺在HDFS讀寫能力、MapReduce計算能力上均表現出較優的性能。后續我們將對Hadoop2.0與3.0平臺進行性能對比研究。
參考文獻
[1]White T.Hadoop權威指南[M].清華大學出版社,2015.
[2]Apache Hadoop website, http://hadoop. apache.org.
[3]MichealG.Noll. Benchmarking and Stress Testing an Hadoop ClusterWith TeraSort, TestDFSIO& Co., http:// www.michaelnoll.com/blog/2011/04/09/ benchmarking-and-stress-testing- an-hadoopcluster-with-terasort- testdfsio-nnbench-mrbench/.
[4]Apache Hadoop3.0, http://hadoop. apache.org/docs/r3.0.0/.