王薇
摘要:為了更好的驗證通過參數(shù)的優(yōu)化可以提高Hadoop性能,我們可以采用的測試方法有:基準(zhǔn)測試、穩(wěn)定性測試、高可用測試、擴展性測試、安全性測試等。本文以基準(zhǔn)測試方法為主來驗證參數(shù)優(yōu)化后,實現(xiàn)對Hadoop性能的調(diào)優(yōu)。本文主要針對hadoop內(nèi)部的17個參數(shù)進(jìn)行優(yōu)化,通過基準(zhǔn)測試中terasort和WordCount的復(fù)合算法的執(zhí)行時間來校驗參數(shù)的優(yōu)化情況,實驗過程中搜集系統(tǒng)的cpu和內(nèi)存使用率,磁盤io和網(wǎng)絡(luò)io的吞吐量等指標(biāo)。圖1-3充分說明了參數(shù)默認(rèn)值與參數(shù)調(diào)整后的對比情況。實驗結(jié)果表明,hadoop參數(shù)調(diào)整優(yōu)化后,在一定情況下實現(xiàn)了hadoop的性能調(diào)優(yōu)。
關(guān)鍵字:Hadoop;參數(shù)優(yōu)化;性能調(diào)優(yōu)
引言
大數(shù)據(jù)軟件平臺主要由分布式文件系統(tǒng)、分布式計算系統(tǒng)、NoSQL 數(shù)據(jù)庫、分布式數(shù)據(jù)倉庫、分布式數(shù)據(jù)庫等構(gòu)成,能夠提供大數(shù)據(jù)的存儲、管理和計算能力。大數(shù)據(jù)軟件平臺主要包括開源的Hadoop、Spark等,一般部署在通用硬件平臺上[1-2]。
由于Hadoop自身包含的參數(shù)比較多,參數(shù)之間的關(guān)系也比較復(fù)雜。經(jīng)過簡單的實驗驗證,本文主要對表1中的17個參數(shù)進(jìn)行優(yōu)化,并且參數(shù)優(yōu)化是遵循順序、疊加的方式,從而到達(dá)Hadoop的性能調(diào)優(yōu)。
實驗設(shè)計和算法研究
為了更好的驗證通過參數(shù)的優(yōu)化可以提高Hadoop性能,我們可以采用的測試方法有:基準(zhǔn)測試、穩(wěn)定性測試、高可用測試、擴展性測試、安全性測試等。本文以基準(zhǔn)測試方法為主來驗證參數(shù)優(yōu)化后,實現(xiàn)對Hadoop性能的調(diào)優(yōu)。
基準(zhǔn)測試是一種測量和評估軟件性能指標(biāo)的活動。可以在某個時間通過基準(zhǔn)測試建立一個已知的性能水平(稱為基準(zhǔn)線)[3],當(dāng)系統(tǒng)的軟硬件環(huán)境發(fā)生變化之后再進(jìn)行一次基準(zhǔn)測試以確定那些變化對性能的影響。
基準(zhǔn)測試的測試方法有很多種,根據(jù)Hadoop的Map Reduce過程,本文主要以TeraSort算法和WordCount算法來驗證表1中的17個參數(shù)調(diào)整后,對Hadoop性能在特定條件下影響及優(yōu)化。
本實驗中hadoop測試環(huán)境是采用1個Name Node節(jié)點,4個Date Node節(jié)點的模式進(jìn)行。
算法研究:
1)TeraSort 算法
Terasort算法的工作原理需要以下幾個步驟:
首先,采樣;
其次,map task對于數(shù)據(jù)記錄做標(biāo)記-
最后reduce局部排序,再順序輸出。
1TB排序通常用于衡量分布式數(shù)據(jù)處理框架的數(shù)據(jù)處理能力。Terasort是Hadoop中的一個排序作業(yè),在2008年,Hadoop在1TB排序基準(zhǔn)評估中贏得第一名,耗時209秒。TeraSort巧妙的利用了Hadoop的MapReduce機制來實現(xiàn)了Sort的目的,與Hadoop機制的完美結(jié)合也許是它優(yōu)異排序成績的一個重要原因。而也正因為如此,我們可以在集群上利用TeraSort來測試Hadoop,它將具有很高的測試?yán)脙r值[4]。
Terasort的特點是混合型的,它的數(shù)據(jù)類型為文本,測試過程中所需的數(shù)據(jù)來源為Hadoop 自帶TeraGen生成。
TeraSort只是一個小工具,比起生產(chǎn)應(yīng)用作業(yè),可能是微不足道了。但一個小工具,如果能夠挖掘到底,背后也會有大價值;尤其對測試來講,如果能夠?qū)Ρ尘爸R有更多的了解,一個小工具可以轉(zhuǎn)換成眾多方便且有價值的測試用例;并且,如果能對一個小工具舉一反三,也能夠為其他地方的測試提供價值。
2)WordCount算法
(1) 將文件拆分為多個文件。 由于測試文件比較小,每個文件都是一個split,把文件分割成行,形成<key, value>對,再分割成<key, value>對。 移交用戶定義的map方法,生成新的<key, value>對,如圖1所示。
(2)Mapper得到map方法輸出的<key, value>對后,會根據(jù)key的值對它們進(jìn)行排序,并執(zhí)行Combine過程,將key累加到相同的值,得到Mapper的最終輸出 . 如圖2所示。
(3) Reducer首先對從Mapper接收到的數(shù)據(jù)進(jìn)行排序,然后通過用戶自定義的reduce方法進(jìn)行處理,得到一個新的<key, value>對,輸出結(jié)果為WordCount,如圖3所示。
本文首先根據(jù)terasort算法對17個參數(shù)進(jìn)行調(diào)優(yōu),然后根據(jù)WordCount算法繼續(xù)進(jìn)行參數(shù)調(diào)整,以達(dá)到性能在一定情況下達(dá)到最佳狀態(tài)。在實驗過程中,主要根據(jù)算法的執(zhí)行時間來驗證了參數(shù)調(diào)整的正確性。同時采用PAT工具監(jiān)控算法執(zhí)行過程中系統(tǒng)的CPU、內(nèi)存、磁盤IO和網(wǎng)絡(luò)IO等參數(shù)。
實驗數(shù)據(jù)中單個文件大小為1G,文件數(shù)量為512,總文件大小為512G。
實驗結(jié)果
通過實驗,我們可以了解到參數(shù)之間存在著互相影響的關(guān)系,測試后發(fā)現(xiàn)隨著參數(shù)調(diào)整,算法的執(zhí)行時間在減少,充分的說明了隨著參數(shù)的優(yōu)化,hadoop性能實現(xiàn)一定的優(yōu)化。
我們可以了解到隨著調(diào)整17個參數(shù)的默認(rèn)值,算法的執(zhí)行時間有明顯的縮短,在17個參數(shù)都處于默認(rèn)值的情況下,算法的執(zhí)行時間為21776秒。圖1展現(xiàn)了參數(shù)默認(rèn)值與參數(shù)調(diào)整后算法的執(zhí)行時間的對比情況,參數(shù)優(yōu)化后,極大的提高了算法的執(zhí)行時間。圖2清晰的展現(xiàn)了參數(shù)默認(rèn)值與參數(shù)調(diào)整后算法的執(zhí)行過程中,hadoop對服務(wù)器的cpu/內(nèi)存的使用率對比情況,cpu的占用率明顯有所增大,內(nèi)存的使用率也有所增大。圖3清晰的展現(xiàn)了參數(shù)默認(rèn)值與參數(shù)調(diào)整后算法的執(zhí)行過程中,hadoop對服務(wù)器的磁盤IO,網(wǎng)絡(luò) IO吞吐量明顯有所增大。
經(jīng)過驗證,說明參數(shù)調(diào)整后在一定程度上提高了性能。
總結(jié)
本文主要是通過基準(zhǔn)測試中TeraSort算法和WordCount算法相結(jié)合復(fù)合算法的運行時間來驗證對Hadoop的參數(shù)進(jìn)行調(diào)優(yōu),進(jìn)而優(yōu)化hadoop的性能。Hadoop性能調(diào)優(yōu)不僅涉及到Hadoop本身的性能調(diào)優(yōu),還涉及更底層的硬件、操作系統(tǒng)和Java虛擬機等系統(tǒng)的調(diào)優(yōu)。為了更好的使用Hadoop,我們應(yīng)根據(jù)實際應(yīng)用場景及要求,對hadoop參數(shù)進(jìn)行優(yōu)化,使hadoop性能在特定情況下達(dá)到最優(yōu)。
參考文獻(xiàn)references
[1]Saravanan S, Karthick K E, Balaji A, et al. Performance Comparison of Apache Spark and Hadoop Based Large Scale Content Based Recommender System[M]// Intelligent Systems Technologies and Applications. 2018:66-73.
[2]Ashlesha S, R. M. A Review of Hadoop Ecosystem for BigData[J]. International Journal of Computer Applications, 2018, 180(14):35-40.
[3]Trivedi M, Nambiar R. Lessons Learned: Performance Tuning for Hadoop Systems[M]// Performance Evaluation and Benchmarking. Traditional - Big Data - Interest of Things. 2017.
[4]Pahl C. Performance and Energy Optimization on Terasort Algorithm by Task Self-Resizing[J]. Information Technology & Control, 2014, 44(1):30-40.