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

  陳新

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

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

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

0引言

  Hadoop是目前比較流行的云計(jì)算實(shí)現(xiàn)平臺,,通過Hadoop可以快速搭建和部署云計(jì)算的環(huán)境。在Hadoop中有兩個(gè)重要的功能組件,,分別是分布式文件系統(tǒng)和MapReduce計(jì)算組件,。通過上述功能組件可以實(shí)現(xiàn)云計(jì)算的分布式計(jì)算和應(yīng)用的虛擬化[1]。開源云計(jì)算平臺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)度算法。無論是哪種調(diào)度算法,,在Hadoop中都需要通過主控節(jié)點(diǎn)進(jìn)行分配和安排,,通過作業(yè)調(diào)度器對云計(jì)算中的作業(yè)和任務(wù)進(jìn)行調(diào)度,根據(jù)用戶的設(shè)置偏好來實(shí)現(xiàn)對任務(wù)的分配和作業(yè)的調(diào)度[34],。從這個(gè)角度上看,,作業(yè)的調(diào)度和安排直接關(guān)系到云計(jì)算平臺性能的好壞,直接影響到云計(jì)算平臺的效率,,同時(shí)也會對用戶的服務(wù)質(zhì)量產(chǎn)生影響[5],。在云計(jì)算的環(huán)境下,需要對用戶提交的作業(yè)進(jìn)行分級處理,,并對每一個(gè)作業(yè)進(jìn)行登記標(biāo)注,,這樣就可以對提交的作業(yè)設(shè)置不同的優(yōu)先級別,在進(jìn)行調(diào)度時(shí)可以按照作業(yè)調(diào)度的優(yōu)先級別進(jìn)行處理,,優(yōu)先安排服務(wù)質(zhì)量高的作業(yè)進(jìn)行資源的分配和處理,,這樣可以有效地提高云用戶作業(yè)的服務(wù)質(zhì)量以及云用戶的滿意程度[6]。

1云體系架構(gòu)

001.jpg

  云計(jì)算的服務(wù)包括多種類型,,具體有私有云和公有云,,對于不同的云計(jì)算環(huán)境其具體的劃分圖1云計(jì)算作業(yè)調(diào)度的體系架構(gòu)結(jié)構(gòu)如圖1所示[7]。在云計(jì)算的體系結(jié)構(gòu)中,,對于私有云來說,,用戶可以很好地實(shí)現(xiàn)對數(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è)主要的等級隊(duì)列,,對作業(yè)進(jìn)行服務(wù)質(zhì)量(QoS)屬性偏好設(shè)置,,就可以得到具有不同用戶屬性偏好的多優(yōu)先級的作業(yè),然后通過作業(yè)調(diào)度器來完成對作業(yè)的調(diào)度和安排,,滿足用戶作業(yè)調(diào)度服務(wù)的需求,,為此,本文提出了多優(yōu)先級作業(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ì)算函數(shù) Priority,,在這個(gè)函數(shù)中包括了基于 QoS 屬性約束的優(yōu)先條件,對每一個(gè)作業(yè)的優(yōu)先級的數(shù)值進(jìn)行計(jì)算,。接著,,在云計(jì)算主控節(jié)點(diǎn) JobTracker的作業(yè)調(diào)度器中對Priority建立隊(duì)列,然后,,在進(jìn)行作業(yè)調(diào)度任務(wù)分配時(shí),,選取隊(duì)列中具有最高優(yōu)先級值的作業(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ù)性能和程度的總和。對云服務(wù)的能力進(jìn)行衡量和描述,,具體如表1所示。 

008.jpg

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

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

002.jpg

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

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

 

003.jpg

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

009.jpg

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

  

004.jpg

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

005.jpg

  對于任務(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)對目前調(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ù)分配完畢。

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

  (4)比較目前調(diào)度作業(yè)的reduce 任務(wù)數(shù)與空閑的 reduce 任務(wù)槽數(shù),,如果reduceslots>= req_reduceno,,則進(jìn)行任務(wù)的分配,并將其分配到任務(wù)跟蹤節(jié)點(diǎn)中進(jìn)行調(diào)度,;否則結(jié)束分配,。對作業(yè)分級機(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 [email protected] GHz,,1 GB內(nèi)存,,160 GB硬盤; 軟件環(huán)境 :操作系統(tǒng)為Linux Ubuntu 8.04,,編程環(huán)境為Hadoop 0.20.2,、jdk6u24linuxi586。

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

  仿真實(shí)驗(yàn)中對作業(yè)的完成時(shí)間進(jìn)行比較,。在Hadoop集群環(huán)境下,,仿真20個(gè)不同用戶的工作和業(yè)務(wù)流,并且對每一組的工作流都執(zhí)行20次,,對這些重復(fù)執(zhí)行的工作任務(wù)進(jìn)行計(jì)算取其平均值,,計(jì)算作業(yè)的完成時(shí)間,按照上述方式,,對不同級別的文件進(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ì)列等級權(quán)重設(shè)置為不同的級別,,權(quán)重分別為VERY_HIGH=4、HIGH=2,、NORMAL=1,、LOW=0.5、VERY_LOW=0.25,對于優(yōu)先級別中的屬性參數(shù)Time和Cost均設(shè)置為 0.5,。

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

  

007.jpg

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

  4結(jié)束語

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

  參考文獻(xiàn)

  [1] 柳少鋒,,董劍.一種基于優(yōu)先級隊(duì)列的集群動態(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.

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

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

 ?。?] 廖大強(qiáng),鄒杜,印鑒. 一種基于優(yōu)先級的網(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.

  [7] 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.

  [8] 廖大強(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)載,。