《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > Hadoop平臺(tái)中作業(yè)調(diào)度算法分析與改進(jìn)研究
Hadoop平臺(tái)中作業(yè)調(diào)度算法分析與改進(jìn)研究
2016年微型機(jī)與應(yīng)用第11期
陳新
(廣東省培英職業(yè)技術(shù)學(xué)校, 廣東 廣州 510630)
摘要: 針對(duì)傳統(tǒng)云計(jì)算作業(yè)調(diào)度中簡(jiǎn)單優(yōu)先級(jí)設(shè)置的不足,首先對(duì)作業(yè)調(diào)度進(jìn)行研究并提出了基于用戶服務(wù)等級(jí)協(xié)議(SLA)的作業(yè)分級(jí)機(jī)制。該設(shè)計(jì)基于QoS約束的多優(yōu)先級(jí)作業(yè)調(diào)度算法,在算法中利用云用戶作業(yè)中的偏好程度來(lái)設(shè)計(jì)優(yōu)先級(jí)值計(jì)算函數(shù)Priority,在作業(yè)調(diào)度時(shí)可以使較高等級(jí)的云用戶和具有較高優(yōu)先級(jí)的作業(yè)優(yōu)先得到任務(wù)的執(zhí)行,通過上述方式可以較好地保證云計(jì)算環(huán)境下的服務(wù)質(zhì)量。
Abstract:
Key words :

  陳新

  (廣東省培英職業(yè)技術(shù)學(xué)校, 廣東 廣州 510630)

  摘要:針對(duì)傳統(tǒng)云計(jì)算作業(yè)調(diào)度中簡(jiǎn)單優(yōu)先級(jí)設(shè)置的不足,首先對(duì)作業(yè)調(diào)度進(jìn)行研究并提出了基于用戶服務(wù)等級(jí)協(xié)議(SLA)的作業(yè)分級(jí)機(jī)制。該設(shè)計(jì)基于QoS約束的多優(yōu)先級(jí)作業(yè)調(diào)度算法,在算法中利用云用戶作業(yè)中的偏好程度來(lái)設(shè)計(jì)優(yōu)先級(jí)值計(jì)算函數(shù)Priority,在作業(yè)調(diào)度時(shí)可以使較高等級(jí)的云用戶和具有較高優(yōu)先級(jí)的作業(yè)優(yōu)先得到任務(wù)的執(zhí)行,通過上述方式可以較好地保證云計(jì)算環(huán)境下的服務(wù)質(zhì)量。

  關(guān)鍵詞:云計(jì)算;作業(yè)分級(jí)機(jī)制;作業(yè)調(diào)度算法;SLA;QoS

0引言

  Hadoop是目前比較流行的云計(jì)算實(shí)現(xiàn)平臺(tái),通過Hadoop可以快速搭建和部署云計(jì)算的環(huán)境。在Hadoop中有兩個(gè)重要的功能組件,分別是分布式文件系統(tǒng)和MapReduce計(jì)算組件。通過上述功能組件可以實(shí)現(xiàn)云計(jì)算的分布式計(jì)算和應(yīng)用的虛擬化[1]。開源云計(jì)算平臺(tái)Hadoop中的分布式文件系統(tǒng)是谷歌公司實(shí)現(xiàn)云計(jì)算的文件系統(tǒng)開源部分,而MapReduce是谷歌公司實(shí)現(xiàn)云計(jì)算中的并行計(jì)算和處理的實(shí)現(xiàn)部分[2]。

  在云計(jì)算的環(huán)境下,目前的作業(yè)調(diào)度算法主要有三種,分別為先進(jìn)先出作業(yè)調(diào)度算法、公平調(diào)度算法和計(jì)算能力調(diào)度算法。無(wú)論是哪種調(diào)度算法,在Hadoop中都需要通過主控節(jié)點(diǎn)進(jìn)行分配和安排,通過作業(yè)調(diào)度器對(duì)云計(jì)算中的作業(yè)和任務(wù)進(jìn)行調(diào)度,根據(jù)用戶的設(shè)置偏好來(lái)實(shí)現(xiàn)對(duì)任務(wù)的分配和作業(yè)的調(diào)度[34]。從這個(gè)角度上看,作業(yè)的調(diào)度和安排直接關(guān)系到云計(jì)算平臺(tái)性能的好壞,直接影響到云計(jì)算平臺(tái)的效率,同時(shí)也會(huì)對(duì)用戶的服務(wù)質(zhì)量產(chǎn)生影響[5]。在云計(jì)算的環(huán)境下,需要對(duì)用戶提交的作業(yè)進(jìn)行分級(jí)處理,并對(duì)每一個(gè)作業(yè)進(jìn)行登記標(biāo)注,這樣就可以對(duì)提交的作業(yè)設(shè)置不同的優(yōu)先級(jí)別,在進(jìn)行調(diào)度時(shí)可以按照作業(yè)調(diào)度的優(yōu)先級(jí)別進(jìn)行處理,優(yōu)先安排服務(wù)質(zhì)量高的作業(yè)進(jìn)行資源的分配和處理,這樣可以有效地提高云用戶作業(yè)的服務(wù)質(zhì)量以及云用戶的滿意程度[6]。

1云體系架構(gòu)

001.jpg

  云計(jì)算的服務(wù)包括多種類型,具體有私有云和公有云,對(duì)于不同的云計(jì)算環(huán)境其具體的劃分圖1云計(jì)算作業(yè)調(diào)度的體系架構(gòu)結(jié)構(gòu)如圖1所示[7]。在云計(jì)算的體系結(jié)構(gòu)中,對(duì)于私有云來(lái)說,用戶可以很好地實(shí)現(xiàn)對(duì)數(shù)據(jù)的控制,保證云計(jì)算中的用戶數(shù)據(jù)的安全。并且在私有云的計(jì)算環(huán)境下,用戶不僅可以通過其調(diào)度得到內(nèi)部的計(jì)算資源,還可以通過云計(jì)算的作業(yè)調(diào)度獲取到公有云中的計(jì)算資源和服務(wù),使得云計(jì)算的體系結(jié)構(gòu)具有高可用性、易擴(kuò)展的特點(diǎn)[8]。

2算法設(shè)計(jì)

  任務(wù)調(diào)度是集群系統(tǒng)的核心技術(shù)。本文中共劃分了五個(gè)主要的等級(jí)隊(duì)列,對(duì)作業(yè)進(jìn)行服務(wù)質(zhì)量(QoS)屬性偏好設(shè)置,就可以得到具有不同用戶屬性偏好的多優(yōu)先級(jí)的作業(yè),然后通過作業(yè)調(diào)度器來(lái)完成對(duì)作業(yè)的調(diào)度和安排,滿足用戶作業(yè)調(diào)度服務(wù)的需求,為此,本文提出了多優(yōu)先級(jí)作業(yè)調(diào)度算法(QoSMulti Priority Scheduler,QoSMP Scheduler)。

  2.1算法的設(shè)計(jì)思想

  在QoSMP Scheduler算法中,其設(shè)計(jì)的主要思路是,首先需要設(shè)計(jì)作業(yè)優(yōu)先級(jí)計(jì)算函數(shù) Priority,在這個(gè)函數(shù)中包括了基于 QoS 屬性約束的優(yōu)先條件,對(duì)每一個(gè)作業(yè)的優(yōu)先級(jí)的數(shù)值進(jìn)行計(jì)算。接著,在云計(jì)算主控節(jié)點(diǎn) JobTracker的作業(yè)調(diào)度器中對(duì)Priority建立隊(duì)列,然后,在進(jìn)行作業(yè)調(diào)度任務(wù)分配時(shí),選取隊(duì)列中具有最高優(yōu)先級(jí)值的作業(yè)進(jìn)行分配,并將相關(guān)數(shù)據(jù)調(diào)入到云計(jì)算本地文件系統(tǒng)區(qū)去執(zhí)行,這樣就可以在最大程度上考慮用戶的服務(wù)質(zhì)量需求,有效地提高用戶作業(yè)的服務(wù)質(zhì)量,提升整個(gè)系統(tǒng)的質(zhì)量和服務(wù)滿意度。

  2.2服務(wù)質(zhì)量設(shè)計(jì)

  在云計(jì)算的環(huán)境下,云計(jì)算的服務(wù)質(zhì)量是全部服務(wù)性能和程度的總和。對(duì)云服務(wù)的能力進(jìn)行衡量和描述,具體如表1所示。 

008.jpg

  2.3優(yōu)先級(jí)計(jì)算函數(shù)設(shè)計(jì)

  云服務(wù)中的作業(yè)包括了兩個(gè)重要的屬性,即Time和Cost屬性,對(duì)于每一個(gè)作業(yè),其Time和Cost的需求是不盡相同的,根據(jù)具體的實(shí)際情況才能確定。在云計(jì)算的環(huán)境下,其計(jì)算數(shù)值相差都較大,具有比較大的波動(dòng)性,但是這兩個(gè)屬性是衡量云計(jì)算服務(wù)質(zhì)量的最重要的屬性,如何對(duì)其進(jìn)行定義和配置關(guān)系到云服務(wù)質(zhì)量的好壞,需要在這兩個(gè)作業(yè)屬性之間找到平衡,來(lái)保證云服務(wù)的質(zhì)量。為此,本文提出了使用基于 QoS 約束的優(yōu)先級(jí)計(jì)算函數(shù) Priority來(lái)完成上述各個(gè)屬性的約束與控制,實(shí)現(xiàn)用戶作業(yè)服務(wù)質(zhì)量的滿足。Time和Cost屬性具體如圖2所示。

002.jpg

  2.4算法的實(shí)現(xiàn)

  通過對(duì)用戶作業(yè)的分級(jí)可以在開源云計(jì)算框架中的主控節(jié)點(diǎn)JobTracker中得到5個(gè)具有不同級(jí)別的隊(duì)列,表示為VERY_HIGH、HIGH、NORMAL、LOW、VERY_LOW。上述作業(yè)隊(duì)列的優(yōu)先級(jí)別為從高到低。在節(jié)點(diǎn)中對(duì)作業(yè)客戶端所提交的作業(yè)信息進(jìn)行提取,可以得到作業(yè)等級(jí)的數(shù)據(jù)信息,將其提交到主控節(jié)點(diǎn)中進(jìn)行作業(yè)隊(duì)列的安排,通過映射就可以使得每一個(gè)作業(yè)隊(duì)列都具有優(yōu)先級(jí)別。同樣地,在主控節(jié)點(diǎn)中,對(duì)于作業(yè)隊(duì)列通過計(jì)算其優(yōu)先權(quán)值的數(shù)據(jù),并對(duì)每一個(gè)優(yōu)先級(jí)別VERY_HIGH、HIGH、NORMAL、LOW、VERY_LOW分別設(shè)置ω1、ω2、ω3、ω4、ω5的權(quán)重?cái)?shù)值,云用戶就可以對(duì)上述的權(quán)值進(jìn)行配置,實(shí)現(xiàn)對(duì)云計(jì)算中的作業(yè)優(yōu)先級(jí)別的計(jì)算。對(duì)于其權(quán)重的計(jì)算,如圖3所示。

 

003.jpg

  在云計(jì)算環(huán)境下,對(duì)每一個(gè)作業(yè),其用戶都有其QoS屬性的偏好,對(duì)于不同的偏好可以通過基于 QoS 約束的優(yōu)先級(jí)計(jì)算函數(shù) Priority來(lái)描述和實(shí)現(xiàn),這樣就可以使得在云用戶進(jìn)行作業(yè)提交時(shí)實(shí)現(xiàn)偏好程度的選擇,在云計(jì)算的作業(yè)提交之后通過參數(shù)的方式將其數(shù)據(jù)信息傳遞到云計(jì)算中的主控節(jié)點(diǎn)進(jìn)行處理。本文對(duì)于優(yōu)先級(jí)別函數(shù)的計(jì)算中,主要是對(duì)服務(wù)質(zhì)量屬性中的Time 和 Cost進(jìn)行設(shè)計(jì)和計(jì)算。下面介紹Time 和 Cost 的偏好程度級(jí)別的設(shè)計(jì),其級(jí)別的設(shè)置如表2所示。

009.jpg

  對(duì)于偏好程度共設(shè)置了1~10之間的多個(gè)級(jí)別,其中1的級(jí)別最低,10的級(jí)別最高。不同屬性按照用戶需求選擇,如果對(duì)實(shí)時(shí)性要求較高,則在偏好程度數(shù)值的選擇上選擇較大的Time 屬性值,在云計(jì)算進(jìn)行作業(yè)調(diào)度時(shí),則是選擇優(yōu)先級(jí)別較高的作業(yè)進(jìn)行調(diào)度實(shí)現(xiàn);此外,對(duì)于用戶對(duì)云計(jì)算中的花費(fèi)較低的需求,則在作業(yè)中屬性選擇時(shí)選擇較低的 Cost 屬性值。通過上述設(shè)置完成選擇,將作業(yè)Time 和 Cost 信息傳遞到主控節(jié)點(diǎn)。對(duì)于上述過程,具體如圖4所示。

  

004.jpg

  通過上述過程,作業(yè)自身的Time 和 Cost屬性消息傳遞到云計(jì)算中的主控節(jié)點(diǎn),并在主控節(jié)點(diǎn)對(duì)此消息進(jìn)行計(jì)圖6改進(jìn)后的云計(jì)算系統(tǒng)的作業(yè)處理流程算和分析,對(duì)所提交的作業(yè)進(jìn)行分級(jí),根據(jù)用戶所提交的作業(yè)等級(jí)進(jìn)行調(diào)度,將處于優(yōu)先級(jí)別較高的作業(yè)優(yōu)先安排到作業(yè)隊(duì)列中進(jìn)行處理。因此,在云計(jì)算的作業(yè)調(diào)度中,對(duì)于作業(yè)的處理是通過對(duì)作業(yè)隊(duì)列的優(yōu)先級(jí)系數(shù)值和用戶對(duì) QoS 屬性的偏好程度進(jìn)行計(jì)算,從而得到優(yōu)先級(jí)計(jì)算函數(shù) Priority,最終通過云計(jì)算中的主控節(jié)點(diǎn)進(jìn)行作業(yè)的調(diào)度,完成作業(yè)的執(zhí)行。

005.jpg

  對(duì)于任務(wù)的分配其具體實(shí)施策略如圖5所示。分配步驟如下:圖5JobTracker分配任務(wù)給 TaskTracker 的分配策略圖(1)任務(wù)跟蹤節(jié)點(diǎn)通過心跳協(xié)議的內(nèi)容,一旦出現(xiàn)處于空閑的map 任務(wù)槽和空閑的 reduce 任務(wù)槽,就進(jìn)行統(tǒng)計(jì)和分析,并將其統(tǒng)計(jì)到主控節(jié)點(diǎn)JobTracker進(jìn)行安排。

 ?。?)主控節(jié)點(diǎn)對(duì)目前調(diào)度的map 任務(wù)數(shù)與處于空閑的map 任務(wù)數(shù)進(jìn)行比較;判斷是否mapslots> req_mapno,如果是,則將作業(yè)的map任務(wù)全分配給主控節(jié)點(diǎn),執(zhí)行步驟(3);否則,mapslots 個(gè) map 任務(wù)進(jìn)行調(diào)度,并將其分配到主控節(jié)點(diǎn)中,直到空閑的任務(wù)數(shù)分配完畢。

  (3)如果mapslots = req_mapno,則跳轉(zhuǎn)到(4);否則,結(jié)束分配過程。

 ?。?)比較目前調(diào)度作業(yè)的reduce 任務(wù)數(shù)與空閑的 reduce 任務(wù)槽數(shù),如果reduceslots>= req_reduceno,則進(jìn)行任務(wù)的分配,并將其分配到任務(wù)跟蹤節(jié)點(diǎn)中進(jìn)行調(diào)度;否則結(jié)束分配。對(duì)作業(yè)分級(jí)機(jī)制和調(diào)度算法改進(jìn)后的云計(jì)算系統(tǒng)的作業(yè)處理流程具體如圖6所示。

006.jpg

3實(shí)驗(yàn)與分析

  3.1實(shí)驗(yàn)環(huán)境搭建

  硬件環(huán)境:Inter Pentium Dual E2200@2.20 GHz,1 GB內(nèi)存,160 GB硬盤; 軟件環(huán)境 :操作系統(tǒng)為L(zhǎng)inux Ubuntu 8.04,編程環(huán)境為Hadoop 0.20.2、jdk6u24linuxi586。

  3.2實(shí)驗(yàn)設(shè)計(jì)

  仿真實(shí)驗(yàn)中對(duì)作業(yè)的完成時(shí)間進(jìn)行比較。在Hadoop集群環(huán)境下,仿真20個(gè)不同用戶的工作和業(yè)務(wù)流,并且對(duì)每一組的工作流都執(zhí)行20次,對(duì)這些重復(fù)執(zhí)行的工作任務(wù)進(jìn)行計(jì)算取其平均值,計(jì)算作業(yè)的完成時(shí)間,按照上述方式,對(duì)不同級(jí)別的文件進(jìn)行作業(yè)調(diào)度,計(jì)算不同作業(yè)調(diào)度算法和策略下其總的作業(yè)運(yùn)行時(shí)間和平均作業(yè)運(yùn)行時(shí)間。

  3.3實(shí)驗(yàn)結(jié)果分析

  在本次實(shí)驗(yàn)中,將作業(yè)的隊(duì)列等級(jí)權(quán)重設(shè)置為不同的級(jí)別,權(quán)重分別為VERY_HIGH=4、HIGH=2、NORMAL=1、LOW=0.5、VERY_LOW=0.25,對(duì)于優(yōu)先級(jí)別中的屬性參數(shù)Time和Cost均設(shè)置為 0.5。

  在本次實(shí)驗(yàn)中,對(duì)于不同算法(靜態(tài)調(diào)度算法表示為Static,遺傳算法表示為GA,本文算法表示為QOS)下的作業(yè)完成時(shí)間,其結(jié)果如圖7所示。

  

007.jpg

  從上述的作業(yè)完成時(shí)間比較示意圖可以看到,本文算法的作業(yè)完成時(shí)間最小。

  4結(jié)束語(yǔ)

  針對(duì)傳統(tǒng)作業(yè)調(diào)度算法中的不足,通過對(duì)作業(yè)進(jìn)行QoS 屬性的偏好標(biāo)記,調(diào)度中進(jìn)行優(yōu)先級(jí)函數(shù)計(jì)算保證用戶的服務(wù)質(zhì)量。通過仿真實(shí)驗(yàn),驗(yàn)證了算法的平均完成時(shí)間相對(duì)較少,有效地提高了作業(yè)調(diào)度成功率,表明算法具有較好性能。

  參考文獻(xiàn)

 ?。?] 柳少鋒,董劍.一種基于優(yōu)先級(jí)隊(duì)列的集群動(dòng)態(tài)反饋調(diào)度算法[J].智能計(jì)算機(jī)與應(yīng)用,2014,12(4):4549.

 ?。?] 廖大強(qiáng).面向多目標(biāo)的云計(jì)算資源調(diào)度算法[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(2):180189.

 ?。?] 鐘浩濤.基于遺傳算法的動(dòng)態(tài)調(diào)度分組算法[J].計(jì)算機(jī)學(xué)報(bào),2013,45(8):1112.

 ?。?] 涂剛陽(yáng),富民.基于動(dòng)態(tài)優(yōu)先級(jí)策略的最優(yōu)軟非周期任務(wù)調(diào)度算法[J].計(jì)算機(jī)研究與發(fā)展,2014,42(11):2324.

 ?。?] 廖大強(qiáng),鄒杜,印鑒. 一種基于優(yōu)先級(jí)的網(wǎng)格調(diào)度算法[J]. 計(jì)算機(jī)工程, 2014, 40(10): 1116.

 ?。?] AGUILERA M K, CHEN W,TOUEG S. On quiescent reliable communication[J]. Computing,2014,39(6):20402073.

 ?。?] VAQUERO L,RODEROMERINO L,CACERES J,et al.A break in the clouds:towards a cloud definition[J].ACM SIGCOMM Computer Communication Review,2014,39(1):5055.

 ?。?] 廖大強(qiáng),印鑒,鄔依林,等.基于興趣傳播的用戶相似性計(jì)算方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(10):95100,104.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。