吳 佳,蘇 丹,李環(huán)媛,袁衛(wèi)國(guó)
(國(guó)網(wǎng)冀北電力有限公司信息通信分公司 信息通信工程中心,北京 100053)
一種基于交互式的Hadoop作業(yè)調(diào)度算法
吳 佳,蘇 丹,李環(huán)媛,袁衛(wèi)國(guó)
(國(guó)網(wǎng)冀北電力有限公司信息通信分公司 信息通信工程中心,北京 100053)
Hadoop平臺(tái)中作業(yè)調(diào)度是一個(gè)重要環(huán)節(jié)。FIFO是Hadoop默認(rèn)的調(diào)度算法,簡(jiǎn)單易實(shí)現(xiàn)且應(yīng)用廣泛,但其在數(shù)據(jù)的本地化(data locality)這一特性上考慮不足,會(huì)引起網(wǎng)絡(luò)的負(fù)載量增大,任務(wù)的等待執(zhí)行時(shí)間長(zhǎng),計(jì)算資源得不到充分利用等一系列弊端;同時(shí)Map階段和Reduce階段資源槽的靜態(tài)職能形式也更一步加深了這種缺陷。針對(duì)這些缺陷,從數(shù)據(jù)的本地性、任務(wù)分配的角度出發(fā),提出了一種基于主從節(jié)點(diǎn)間交互的作業(yè)調(diào)度算法(Interactive Scheduler,IS)。該算法是對(duì)FIFO的一種改進(jìn),同時(shí)也使不同資源槽之間可以動(dòng)態(tài)轉(zhuǎn)換,提高了資源的使用率。通過實(shí)驗(yàn)對(duì)比,結(jié)果表明IS調(diào)度算法對(duì)Hadoop平臺(tái)的作業(yè)調(diào)度效率有顯著的提升。
Hadoop;MapReduce;交互式;slots資源槽;IS調(diào)度
隨著互聯(lián)網(wǎng)的高速發(fā)展及用戶量的迅速增長(zhǎng),數(shù)據(jù)量的產(chǎn)生速度也呈現(xiàn)出爆炸性增長(zhǎng),使得大數(shù)據(jù)成為時(shí)下的熱門搜索詞。面對(duì)越來越龐大的數(shù)據(jù)量,傳統(tǒng)的大機(jī)器的處理方式顯得越來越力不從心。隨著軟件技術(shù)的飛速發(fā)展,分布式計(jì)算的概念再一次被提上日程。它是一種低成本、高效率的處理方式,通過將大量廉價(jià)的PC彼此連接起來組成集群的方式進(jìn)行海量數(shù)據(jù)的存儲(chǔ)與分析。簡(jiǎn)單地說它是一種在數(shù)據(jù)處理領(lǐng)域從“猛虎到群狼”的策略的轉(zhuǎn)變。在眾多的分布式處理平臺(tái)中,Apache Hadoop[1]無疑是目前最活躍、應(yīng)用最廣泛的一個(gè),同時(shí)也是Apache Software Foundation下的開源項(xiàng)目之一。Hadoop平臺(tái)對(duì)開發(fā)者隱藏了底層的實(shí)現(xiàn)細(xì)節(jié)。在此平臺(tái)上,只需考慮算法的本身而不用關(guān)注平臺(tái)的底層實(shí)現(xiàn)。用戶只需要根據(jù)自己的需求編寫Map和Reduce函數(shù)就可實(shí)現(xiàn)分布式的應(yīng)用。因此,眾多的云計(jì)算運(yùn)營(yíng)商及Hadoop愛好者積極投入到Hadoop的陣營(yíng)中,也使得Hadoop的用戶數(shù)和活躍度在不停攀升。
Hadoop中有三種調(diào)度方法:FIFO Scheduler[2]、Fair Scheduler[3]、Capacity Scheduler[4]。其中默認(rèn)的調(diào)度算法是FIFO。Fair Scheduler和Capacity Scheduler都是基于多用戶、公平性的調(diào)度器,區(qū)別只是在調(diào)度策略上有所不同。Capacity Scheduler是Yahoo公司開發(fā)的一種基于計(jì)算能力的調(diào)度算法,它以隊(duì)列的形式分配資源,通過對(duì)內(nèi)存的約束來限制每個(gè)用戶占用的資源數(shù);Fair Scheduler由Facebook公司開發(fā),為了保證公平性,該算法采用資源池的形式組織作業(yè),具有小作業(yè)快速響應(yīng)、大作業(yè)確保性能的特點(diǎn)。FIFO是一種批處理調(diào)度器,所有的作業(yè)被提交到一個(gè)作業(yè)隊(duì)列,依照先來后到的順序?qū)⒚總€(gè)作業(yè)切分成不同的任務(wù),再依次對(duì)任務(wù)進(jìn)行調(diào)度。
FIFO調(diào)度算法的優(yōu)點(diǎn)很明顯:簡(jiǎn)單易實(shí)現(xiàn),對(duì)JobTracker的負(fù)擔(dān)??;但也存在很多不足:任務(wù)分配時(shí)只是盡量保持本地性,任務(wù)槽是面向職能而非作業(yè)。因此,眾多學(xué)者試圖從各個(gè)方面對(duì)此進(jìn)行改進(jìn)。文獻(xiàn)[5]提出的一種調(diào)度算法考慮了當(dāng)任務(wù)調(diào)度器不能選擇Data-local任務(wù)時(shí)是否允許分配Non-Local任務(wù);文獻(xiàn)[6-7]提出了一種基于Map任務(wù)節(jié)點(diǎn)數(shù)量和數(shù)據(jù)片復(fù)制模式的Map任務(wù)選擇的調(diào)度算法;Delay Scheduler[8-10]解決了由非本地?cái)?shù)據(jù)作業(yè)調(diào)度引起的局部性問題;Dynamic Proportional Scheduler[11-13]支持用戶優(yōu)先級(jí)的改變,通過計(jì)算動(dòng)態(tài)為用戶按比例分配任務(wù);文獻(xiàn)[14]提出了一種基于截止時(shí)間的實(shí)時(shí)調(diào)度算法;文獻(xiàn)[15]提出了一種在異構(gòu)環(huán)境下基于MapReduce任務(wù)調(diào)度改進(jìn)機(jī)制;文獻(xiàn)[16]提出了基于改進(jìn)遺傳算法的Hadoop作業(yè)調(diào)度;文獻(xiàn)[17]解決了短作業(yè)執(zhí)行性能優(yōu)化。但是這些算法都沒能兼顧任務(wù)分配時(shí)數(shù)據(jù)的本地化特性及TaskTracker節(jié)點(diǎn)在任務(wù)分配中的能動(dòng)性?;诖耍闹刑岢隽艘环N基于交互式的調(diào)度算法(Interactive Scheduler)——IS調(diào)度算法。
傳輸時(shí)間:DataNode節(jié)點(diǎn)將數(shù)據(jù)片(split)從當(dāng)前節(jié)點(diǎn)傳輸?shù)降却龍?zhí)行任務(wù)的節(jié)點(diǎn)所需的時(shí)間,用t1表示,則:
(1)
其中,s表示數(shù)據(jù)塊的大??;v表示交換機(jī)的傳輸速率。
等待時(shí)間:TaskTracker節(jié)點(diǎn)處于執(zhí)行狀態(tài)的任務(wù)的剩余執(zhí)行時(shí)間,用t2表示,則:
t2=MAX{T1,T2,…,TN}(1-w)
(2)
其中,考慮到不同任務(wù)之間的差異性,MAX{T1,T2,…,TN}表示該TaskTracker節(jié)點(diǎn)執(zhí)行隊(duì)列中執(zhí)行時(shí)間的最大值;w表示當(dāng)前任務(wù)完成百分比。
Slot資源槽是MapReduce中執(zhí)行任務(wù)的基本單位。默認(rèn)的配置中每個(gè)節(jié)點(diǎn)分配2個(gè)mapslot和1個(gè)reduceslot,且mapslot只負(fù)責(zé)執(zhí)行map任務(wù),reduceslot只負(fù)責(zé)執(zhí)行reduce任務(wù)。slot的數(shù)量可在一定程度上代表集群的計(jì)算規(guī)模。
有效slot:map或者reduce任務(wù)中處于執(zhí)行狀態(tài)下的slot數(shù)量。假設(shè)集群A中節(jié)點(diǎn)數(shù)量為n,那么默認(rèn)有效mapslot的數(shù)量Qm∈[0,2n],有效reduceslot的數(shù)量Qr∈[0,n]。
有效slot率:map或者reduce任務(wù)中處于執(zhí)行狀態(tài)下的slot數(shù)量與集群中對(duì)應(yīng)總slots的比值,其中:
(3)
(4)
其中,lm表示map任務(wù)的有效執(zhí)行率;lr表示reduce任務(wù)的有效執(zhí)行率;Qm和Qr分別表示集群中mapslot或者reduceslot的總數(shù)。
2.1 IS調(diào)度算法的設(shè)計(jì)目標(biāo)
FIFO調(diào)度策略是作業(yè)按到達(dá)的順序依次排序等候調(diào)度。被調(diào)度的作業(yè)被切分成任務(wù)片依次被分配到TaskTracker節(jié)點(diǎn)執(zhí)行。等到這個(gè)作業(yè)全部執(zhí)行完才進(jìn)行下一作業(yè)的調(diào)度。整個(gè)過程是一個(gè)串行的過程。因此存在以下弊端:
(1)任務(wù)片被分配到TaskTracker節(jié)點(diǎn)執(zhí)行時(shí),不一定能夠保證數(shù)據(jù)的本地性,而執(zhí)行非本地性任務(wù)需要通過網(wǎng)絡(luò)拷貝數(shù)據(jù),這樣會(huì)加重網(wǎng)絡(luò)的負(fù)載。
(2)由于機(jī)器處理速度的差異性、任務(wù)的不確定性、資源的靜態(tài)分配等,一部分機(jī)器在處理完map任務(wù)后處于等待狀態(tài),這對(duì)計(jì)算資源是一種浪費(fèi)。
據(jù)此,提出的交互式調(diào)度算法的主要目標(biāo)是對(duì)JobTracker和TaskTracker間主從結(jié)構(gòu)的一種改進(jìn),充分發(fā)揮TaskTracker節(jié)點(diǎn)在任務(wù)分配中的能動(dòng)性,旨在對(duì)于TaskTracker節(jié)點(diǎn)中不具有數(shù)據(jù)本地性的任務(wù),通過與JobTracker節(jié)點(diǎn)的交互協(xié)商的方式,選擇最佳的任務(wù)分配給該TaskTracker節(jié)點(diǎn);其次在集群初始化時(shí),資源槽全部設(shè)置為map slot,而對(duì)reduce slot的初始值設(shè)置為0,在任務(wù)的執(zhí)行過程中由map slot動(dòng)態(tài)轉(zhuǎn)換為reduce slot。這樣一方面可以有效減少map階段產(chǎn)生的中間數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸量,另一方面也提升了資源的利用率。
2.2 HDFS與IS的結(jié)合
由于HDFS在存放副本時(shí)對(duì)數(shù)據(jù)的容錯(cuò)性與可靠性進(jìn)行了充分的考慮,因此,在IS算法中要充分利用這一特性來達(dá)到調(diào)度目標(biāo)。同時(shí)為了避免跨數(shù)據(jù)塊(block)的任務(wù),Map任務(wù)片(split)的大小要與HDFS數(shù)據(jù)塊的大小保持一致。假定在圖1所示的網(wǎng)絡(luò)環(huán)境中,有Rack1、Rack2兩個(gè)機(jī)架通過交換機(jī)1和交換機(jī)2互聯(lián),采用HDFS默認(rèn)的存儲(chǔ)策略,數(shù)據(jù)塊布局會(huì)隨著節(jié)點(diǎn)的意外失效和負(fù)載均衡動(dòng)態(tài)改變。在IS算法中,當(dāng)數(shù)據(jù)不具有本地化特性時(shí),會(huì)對(duì)存儲(chǔ)該數(shù)據(jù)的最“鄰近”節(jié)點(diǎn)在數(shù)據(jù)塊傳輸時(shí)間和等待時(shí)間兩方面的大小進(jìn)行權(quán)衡。在此對(duì)這種“鄰近”節(jié)點(diǎn)有一個(gè)距離上的定義。

圖1 集群拓?fù)鋱D
在保證不失一般性的前提下,依默認(rèn)存儲(chǔ)規(guī)則任選三個(gè)節(jié)點(diǎn)。在此取n1,n5,n10三個(gè)節(jié)點(diǎn),數(shù)據(jù)塊D在這三個(gè)節(jié)點(diǎn)均有備份。d表示連點(diǎn)間的距離。則有:
其中,0表示同一節(jié)點(diǎn)中不同進(jìn)程間的距離;1表示同一機(jī)架間節(jié)點(diǎn)的距離;2表示不同機(jī)架間節(jié)點(diǎn)的距離。
JobTracker在對(duì)鄰近節(jié)點(diǎn)權(quán)衡時(shí)以距離為依據(jù)從大到小依次選取。
2.3 IS調(diào)度算法的數(shù)據(jù)流程
數(shù)據(jù)從Input到Output要經(jīng)過4個(gè)過程:
(1)從Input到Map階段存在數(shù)據(jù)本地性的問題。若數(shù)據(jù)分片在當(dāng)前TaskTracker節(jié)點(diǎn)有備份且被分配到該節(jié)點(diǎn)執(zhí)行,這是一種最優(yōu)的情況;否則轉(zhuǎn)下步。
(2)若該task被分配到其他不存在備份數(shù)據(jù)的節(jié)點(diǎn),則計(jì)算“鄰近”節(jié)點(diǎn)等待時(shí)間和傳輸時(shí)間。當(dāng)“鄰近”節(jié)點(diǎn)的等待時(shí)間小于傳輸時(shí)間,則為“鄰近”節(jié)點(diǎn)保留此數(shù)據(jù)塊,等待當(dāng)前任務(wù)完成后進(jìn)行下次調(diào)用。否則數(shù)據(jù)塊傳輸?shù)疆?dāng)前等待分配任務(wù)的節(jié)點(diǎn)。
(3)如果上述條件都不滿足,則認(rèn)為作業(yè)進(jìn)程已進(jìn)入到Reduce階段。期間map slot轉(zhuǎn)化為reduce slot會(huì)處理flush到本地磁盤的中間數(shù)據(jù)及RPC到本地的數(shù)據(jù)。
(4)最終所有節(jié)點(diǎn)完全進(jìn)入Reduce階段,處理Reduce任務(wù)及輸出操作。
數(shù)據(jù)的整體流程圖如圖2所示。

圖2 MapReduce數(shù)據(jù)流程圖
2.4 IS的執(zhí)行流程
JobTracker與TaskTracker之間依據(jù)數(shù)據(jù)的本地性采取一種協(xié)調(diào)的方式分配任務(wù)。首先先試探性地按FIFO的順序分配,在TaskTracker節(jié)點(diǎn)不滿足本地性的情況下反饋回JobTracker節(jié)點(diǎn)調(diào)整再分配,而不是一次性地根據(jù)請(qǐng)求的次序依次分配任務(wù)。流程圖如圖3所示。

圖3 調(diào)度流程圖
執(zhí)行步驟:
(1)TaskTracker節(jié)點(diǎn)接到任務(wù)后,首先判斷任務(wù)對(duì)應(yīng)的數(shù)據(jù)塊是否存在,若存在則直接執(zhí)行;否則轉(zhuǎn)下步。
(2)TaskTracker通過心跳把信息反饋回JobTracker節(jié)點(diǎn)。JobTracker節(jié)點(diǎn)會(huì)依據(jù)數(shù)據(jù)本地性在JobQueue中重新選擇任務(wù)。若存在則直接分配執(zhí)行;否則轉(zhuǎn)下步。
(3)JobTracker節(jié)點(diǎn)會(huì)依據(jù)距離選擇最“鄰近”節(jié)點(diǎn)計(jì)算等待時(shí)間與傳輸時(shí)間。若傳輸時(shí)間小于等待時(shí)間,則傳輸數(shù)據(jù)執(zhí)行任務(wù),否則轉(zhuǎn)下步。
(4)上述條件都不滿足時(shí)說明當(dāng)前Job的任務(wù)片正在執(zhí)行態(tài)或即將被執(zhí)行。總體上Job處于即將完成map階段的時(shí)期,此時(shí)閑置的map slot轉(zhuǎn)換為reduce slot來執(zhí)行reduce任務(wù)。
(5)所有任務(wù)執(zhí)行完成,等待下一作業(yè)的到來進(jìn)行重新的調(diào)度分配。
首先用有效slot和有效slot率預(yù)估FIFO算法與IS算法之間的優(yōu)劣。從經(jīng)驗(yàn)中表明FIFO的有效map slot率與集群的規(guī)模有關(guān)且是一種反比關(guān)系;IS調(diào)度算法是在FIFO的基礎(chǔ)上著重考慮數(shù)據(jù)的本地性及資源槽的動(dòng)態(tài)性,因此slot率基本會(huì)在一個(gè)較高的范圍內(nèi)波動(dòng),且在Map階段和Reduce階段有一定的并發(fā),一定程度上會(huì)縮短任務(wù)的執(zhí)行時(shí)間。
實(shí)驗(yàn)環(huán)境是由9個(gè)節(jié)點(diǎn)組成的Hadoop集群。采用Hadoop1.1.2版本。測(cè)試數(shù)據(jù)由RandomWriter隨機(jī)生成。其中主節(jié)點(diǎn)和四個(gè)從節(jié)點(diǎn)在一臺(tái)宿主機(jī)中,其余四個(gè)節(jié)點(diǎn)在另一臺(tái)宿主機(jī)中。兩臺(tái)宿主機(jī)通過千兆交換機(jī)互聯(lián)。
通過slave節(jié)點(diǎn)的有效slot數(shù)量、總體執(zhí)行時(shí)間及CPU的利用率對(duì)兩種算法進(jìn)行對(duì)比。在一個(gè)確定的集群中,有效slot率是由有效slot數(shù)量確定的。因此只需要取有效slot數(shù)量一個(gè)參數(shù)進(jìn)行對(duì)比。
集群中每個(gè)slave節(jié)點(diǎn)上運(yùn)行的TaskTracker通過相關(guān)的“/proc/stat”命令在預(yù)設(shè)時(shí)間段監(jiān)控CPU的狀態(tài)?!?proc/stat”中顯示了所有CPU及每個(gè)CPU的所有活動(dòng)信息。在此取其中的I/O等待時(shí)間信息iowait并采集樣點(diǎn)對(duì)CPU的使用率進(jìn)行計(jì)算。對(duì)于不同的數(shù)據(jù)分片設(shè)置不同的閾值。當(dāng)I/O等待時(shí)間超過指定的閾值,認(rèn)為此時(shí)的數(shù)據(jù)處于傳輸中;否則就認(rèn)為是有效的slot。
圖4為在處理同一任務(wù)中兩種算法的有效slot的數(shù)量概圖??傮w上IS的有效slot數(shù)量是多于FIFO的,但兩者間的差距不大。這是因?yàn)楣?jié)點(diǎn)的數(shù)量比較少,即使按順序依次分配也會(huì)有很大的概率選中具有數(shù)據(jù)本地性的節(jié)點(diǎn);但是在節(jié)點(diǎn)較多的集群上,隨著這種概率的降低,IS算法的優(yōu)勢(shì)才能體現(xiàn)得更好,兩者間的差距才能拉大;同時(shí),還可以看出IS的結(jié)束時(shí)間比FIFO提前,這也在一定程度上體現(xiàn)了算法的優(yōu)勢(shì)。
圖5是對(duì)同樣數(shù)據(jù)量完成時(shí)間的測(cè)試的歸一化表示。首先,在執(zhí)行時(shí)間上顯然是IS快于FIFO;另一方面可以看出,隨著數(shù)據(jù)量的增大執(zhí)行時(shí)間差呈增大的趨勢(shì),這同時(shí)也說明了算法在大數(shù)據(jù)量上的優(yōu)勢(shì)。

圖5 不同數(shù)據(jù)量執(zhí)行時(shí)間對(duì)比圖
文中提出了一種交互式作業(yè)調(diào)度算法(IS),該算法在主從節(jié)點(diǎn)之間以一種交互機(jī)制來最大化數(shù)據(jù)的本地性,減少網(wǎng)絡(luò)中數(shù)據(jù)的傳輸量,加快任務(wù)的完成速度,是對(duì)FIFO算法的一種優(yōu)化改進(jìn),對(duì)作業(yè)調(diào)度中任務(wù)執(zhí)行時(shí)間有很大提升。但該算法還有一些瑕疵,幾個(gè)參數(shù)計(jì)算式在精確度上難以把握,會(huì)在一定程度上影響任務(wù)的分配;同時(shí)過多的權(quán)衡計(jì)算也加大了主節(jié)點(diǎn)的工作量。這是下一步研究的重點(diǎn)。
[1] ApacheHadoop.Hadoop[EB/OL].2015-12-28.http://hadoop.apache.org.
[2] He C, Lu Y, Swanson D. Matchmaking:a new MapReduce scheduling technique[C]//Proceedings of IEEE third international conference on cloud computing technology and science.[s.l.]:IEEE,2011:40-47.
[3] Zaharia M,Borthakur D,Sarma J S,et al.Job scheduling for multi-user mapreduce clusters[R].Berkeley:University of California,2009.
[4] Raj A,Kaur K,Dutta U,et al.Enhancement of Hadoop clusters with virtualization using the capacity scheduler[C]//Third international conference on services in emerging markets.[s.l.]:IEEE,2012:50-57.
[5] Zhang Xiaohong,Feng Yuhong,Feng Shengzhong,et al.An effective data locality aware task scheduling method for MapRe-duceframeworkinheterogeneousenvironments[C]//Proceedingsofinternationalconferenceoncloudandservicecomputing.HongKong:IEEE,2011:235-242.
[6]IbrahimS,JinH,LuL,etal.Maestro:replica-awaremapschedulingformapreduce[C]//Proceedingsof12thIEEE/ACMinternationalsymposiumoncluster,cloudandgridcomputing.Ottawa,Canada:IEEE,2012:435-442.
[7] 鄭曉薇,項(xiàng) 明,張大為,等.基于節(jié)點(diǎn)能力的Hadoop集群任務(wù)自適應(yīng)調(diào)度方法[J].計(jì)算機(jī)研究與發(fā)展,2014,51(3):618-626.
[8]ZahariaM,BorthakurD,SenSarmaJ,etal.Delayscheduling:asimpletechniqueforachievinglocalityandfairnessinclusterscheduling[C]//Proceedingsofthe5thEuropeanconferenceoncomputersystems.NewYork,NY,USA:ACM,2010:265-278.
[9] 李麗英,唐 卓,李仁發(fā).基于LATE的Hadoop數(shù)據(jù)局部性改進(jìn)調(diào)度算法[J].計(jì)算機(jī)科學(xué),2011,38(11):67-70.
[10] 寧文瑜,吳慶波,譚郁松.面向MapReduce的自適應(yīng)延遲調(diào)度算法[J].計(jì)算機(jī)工程與科學(xué),2013,35(3):52-57.
[11]SandholmT,LaiK.DynamicproportionalshareschedulinginHadoop[C]//Jobschedulingstrategiesforparallelprocessing.Berlin:Springer,2010:110-131.
[12] 鄒偉明,于 炯,英昌甜,等.基于動(dòng)態(tài)等待時(shí)間閾值的延遲調(diào)度算法[J].計(jì)算機(jī)應(yīng)用研究,2012,29(11):4073-4078.
[13]KurazumiS,TsumuraT,SaitoS,etal.DynamicprocessingslotsschedulingforI/OintensivejobsofHadoopMapReduce[C]//Proceedingsofthethirdinternationalconferenceonnetworkingandcomputing.[s.l.]:[s.n.],2012:288-292.
[14]KcK,AnyanwuK.SchedulingHadoopjobstomeetdeadlines[C]//Proceedingsofthe2ndIEEEinternationalconferenceoncloudcomputingtechnologyandscience.[s.l.]:IEEE,2012:388-392.
[15] 何 翔,李仁發(fā),唐 卓.一種異構(gòu)環(huán)境下的基于MapReduce任務(wù)調(diào)度改進(jìn)機(jī)制[J].計(jì)算機(jī)應(yīng)用研究,2013,30(11):3370-3373.
[16] 徐 肖,胡吉明.一種Hadoop中基于改進(jìn)遺傳算法的作業(yè)調(diào)度算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(3):10-13.
[17] 顧 榮,嚴(yán)金雙,楊曉亮,等.HadoopMapReduce短作業(yè)執(zhí)行性能優(yōu)化[J].計(jì)算機(jī)研究與發(fā)展,2014,51(6):1270-1280.
An Job Scheduling Algorithm for Hadoop Based on Interaction
WU Jia,SU Dan,LI Huan-yuan,YUAN Wei-guo
(Center of Information and Communication Engineering,State Grid Jibei Information &Telecommunication Company,Beijing 100053,China)
Job scheduling is an important part of Hadoop.FIFO,as a scheduling algorithm by Hadoop,is simple and easy to achieve and widely used,but it is lack of consideration in the characteristic of data locality,that will cause network transmission increased and task waiting long execution time and computing resources cannot be fully utilized and a series of drawbacks.Meanwhile the static function of resource slots in Map and Reduce stages further increases the defects.So a job scheduling algorithm (Interactive Scheduler,IS) based on interacting the master node and slave nodes from the data locality and tasks allocation is proposed,which is improvement for FIFO,and realizes the dynamic conversion of map slots and reduce slots,and increases the usage of resources.Through the comparison of experiment,it proves that the IS has a great improvement in job scheduling for Hadoop.
Hadoop;MapReduce;interaction;slots;IS scheduling
2016-01-29
2016-05-13
時(shí)間:2016-10-24
國(guó)家發(fā)改委高科技產(chǎn)業(yè)化項(xiàng)目(發(fā)改高技[2009]1365號(hào))
吳 佳(1986-),女,工程師,碩士,研究方向?yàn)榉植际较到y(tǒng)、中間件。
http://www.cnki.net/kcms/detail/61.1450.TP.20161024.1117.070.html
TP393
A
1673-629X(2016)11-0045-04
10.3969/j.issn.1673-629X.2016.11.010