朱立
摘要:在互聯(lián)網(wǎng)技術和計算機技術快速發(fā)展的背景下,云計算在數(shù)據(jù)挖掘等海量數(shù)據(jù)處理中起著重要作用。Hadoop是一個開源云計算平臺,其核心是作業(yè)調(diào)度算法,通過作業(yè)調(diào)度算法的研究,可以提升大規(guī)模數(shù)據(jù)的處理能力。文章闡述了Hadoop平臺和其作業(yè)調(diào)度算法,然后進行實驗環(huán)境搭建,進而對Hadoop平臺下作業(yè)調(diào)度算法進行研究。
關鍵詞:Hadoop;作業(yè)調(diào)度;集群
前言
隨著互聯(lián)網(wǎng)技術的迅猛發(fā)展,其面臨的問題也日益突顯,主要問題是用戶的飛速增長,使得大規(guī)模數(shù)據(jù)處理成為難題。因此,需要借助Hadoop這個大數(shù)據(jù)處理工具。但是,在實際應用中,需要通過作業(yè)調(diào)度算法對Hadoop平臺性能改進,減少資源的浪費,同時提升數(shù)據(jù)的處理能力。
一、Hadoop平臺概述
云計算是由網(wǎng)格計算、分布式計算等發(fā)展而成的一種全新的商業(yè)計算模型。云計算技術由上至下可以劃分為軟件即服務、平臺即服務、基礎設施即服務三層[1]。而文章所研究的Hadoop屬于平臺即服務層,即云計算開源組織的分布式計算框架。Hadoop平臺為應用程序提供了可靠的接口,節(jié)約了用戶數(shù)據(jù)處理的成本,具有良好的可靠性、擴展性等優(yōu)點。且在云環(huán)境下較為容易的搭建數(shù)據(jù)存儲與數(shù)據(jù)分析平臺,同時也助力了云環(huán)境數(shù)據(jù)處理技術的發(fā)展。
二、作業(yè)調(diào)度算法
作業(yè)調(diào)度目標是以滿足用戶作業(yè)需求為前提,提高系統(tǒng)的吞吐量,保障系統(tǒng)的負載均衡。目前,Hadoop平臺主要的作業(yè)調(diào)度算法有FIFO調(diào)度算法、公平調(diào)度算法、計算能力調(diào)度算法三種,下面對這三種算法進行介紹。
(1)FIFO算法
FIFO(First In First Out,先進先出)調(diào)度算法是Hadoop平臺中默認的算法[2]。FIFO調(diào)度算法在集群中,將接收到的用戶作業(yè)提交到一個隊列中,提交操作是按照作業(yè)優(yōu)先級順序或者是提交時間順序進行。將數(shù)據(jù)初始化后,由TaskTracker為每一個節(jié)點進行任務的分配操作,分配的順序一般是按照提交時間來進行的。節(jié)點任務在執(zhí)行的過程中,任務是不能被剝奪的。FIFO算法的實現(xiàn)是JobQueueTask Scheduler,位于org.apache.mapred文件夾中。
該算法的主要優(yōu)點是實現(xiàn)簡單、運行穩(wěn)定,因為該算法針對的是單用戶、單類型的作業(yè)調(diào)度。而在調(diào)度處理多用戶多類型過程中,出現(xiàn)性能不穩(wěn)、隊列尾端作業(yè)餓死、資源浪費等問題。
(2)公平調(diào)度算法
公平調(diào)度算法是針對多用戶多類型的作業(yè)進行調(diào)度的算法。公平調(diào)度算法中,在作業(yè)優(yōu)先級一致的條件下,幾乎均勻的將資源分配給各個作業(yè)節(jié)點。如果集群中僅有一個作業(yè)運行的情況下,該作業(yè)獨自享有這個集群。當新的作業(yè)進入時,需要按照作業(yè)的優(yōu)先級進行集群分享。簡而言之,作業(yè)權重相同,作業(yè)分配的集群資源是相同的。
該算法的主要優(yōu)點是實現(xiàn)多用戶的資源平均共享,提交時間較晚的作業(yè)不會餓死。但是該算法忽視了作業(yè)調(diào)度優(yōu)先級問題。
(3)計算調(diào)度算法
計算調(diào)度算法功能與公平調(diào)度算法類似,但是在調(diào)度設計與實現(xiàn)中存在差異。該算法針對的是多用戶作業(yè)隊列,每個隊列按照配置獲取節(jié)點執(zhí)行任務TaskTrack,然后按照配置的不同,對集群資源的百分比進行分配,這種算法能夠?qū)γ總€隊列的資源予以限制。每個隊列采用的是FIFO調(diào)度算法,隊列內(nèi)的調(diào)度是按照作業(yè)優(yōu)先級進行的,而任務提交是系統(tǒng)隨機進行分配的。
該算法的設計思想是能夠合理的分配計算資源在用戶之間、隊列之間的比例。但是,該調(diào)度算法簡愛那個數(shù)據(jù)處理放置到最后進行考慮,就導致了作業(yè)的執(zhí)行效率降低。
三、實驗及結果分析
文章通過實驗平臺的搭建,對上述三種調(diào)度算法在執(zhí)行中的不同進行對比。針對多個測試隊列、多類型作業(yè)在不同作業(yè)調(diào)度算法下的性能,得出實驗數(shù)據(jù)。
1、實驗環(huán)境搭建
Hadoop實驗環(huán)境的搭建,采用的是三臺普通的服務器進行測試,三臺服務器的主機名分別為f1、f2、f3,其IP地址分別為178.178.1.31、178.178.1.32、178.178.1.33。
集群節(jié)點的硬件配置是,CPU 是4核,內(nèi)存4GB,硬盤是320GB,;軟件環(huán)境是Ubuntu-desktop操作系統(tǒng),安裝javajdkl和Hadoop軟件,適用的開發(fā)工具是eclipse。其中,Hadoop軟件安裝的分別是1.0.4版本和2.2.0版本。
2、實驗實施
實驗的思路是,通過兩個量級規(guī)模較小且相近的作業(yè),和一個量級較大的作業(yè)進行比較,比較的是調(diào)度算法的運行時間和響應的情況。
實驗中測試文件是英文小說。在/Lerasort路徑下生成三組作業(yè)原始數(shù)據(jù),分別時10MB、15MB、1G。然后在Hadoop平臺中運行,Teragen生成行大小是100B的數(shù)據(jù)。運行命令中參數(shù)的設置是根據(jù)生成數(shù)據(jù)的總量計算得出的。接下來在三臺PC機中提交作業(yè),且不同調(diào)度算法中的提交順序相同。
實驗選擇WordCount測試方式對作業(yè)執(zhí)行,該方式主要是對文件中單詞出現(xiàn)的次數(shù)進行獲取。將參試文件轉到HDFS中,然后進行調(diào)度算法的測試。
3、結果分析
使用FIFO調(diào)度算法對作業(yè)調(diào)度情況進行測試,按照順序提交作業(yè),作業(yè)運行的情況如表1所示。
使用公平調(diào)度算法運行作業(yè),運行的情況如表2所示。
使用計算能力調(diào)度算法對每個作業(yè)運行,運行信息如表3所示。
通過實驗結果可以看出,公平調(diào)度算法的執(zhí)行更為有效,因為其在提交作業(yè)時,就對資源進行分配。
總結:
為了對Hadoop平臺下的作業(yè)調(diào)度算法進行研究,文章建立了小型的Hadoop集群,通過三種不同規(guī)模的作業(yè),對三種調(diào)度算法進行了解。實驗結果表明,公平調(diào)度算法較其他兩種算法具有靈活、高效的優(yōu)勢。這一研究提高Hadoop平臺的性能和資源利用效率都具有十分重要的實際意義。
參考文獻:
[1]戴小平,張宜力.Hadoop平臺下計算能力調(diào)度算法的改進與實現(xiàn)[J].計算機工程與應用,2015,51(19):61-65.
[2]李千目,張晟驍,陸路,等.一種Hadoop平臺下的調(diào)度算法及混合調(diào)度策略[J].計算機研究與發(fā)展,2013,50(s1):361-368.