亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Hadoop的任務(wù)優(yōu)化調(diào)度方法

文檔序號:9727207閱讀:414來源:國知局
一種基于Hadoop的任務(wù)優(yōu)化調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機分布式系統(tǒng)數(shù)據(jù)處理領(lǐng)域,涉及一種基于Hadoop的任務(wù)優(yōu)化調(diào) 度方法。
【背景技術(shù)】
[0002] Hadoop是一種開源的分布式系統(tǒng)基礎(chǔ)架構(gòu),常用于大規(guī)模數(shù)據(jù)處理。作業(yè)調(diào)度是 Hadoop的核心技術(shù)之一。它的主要功能是按照特定的算法來選擇調(diào)度作業(yè)并對計算資源進 行控制,因此,作業(yè)調(diào)度算法直接關(guān)系到Hadoop整個系統(tǒng)的性能和資源的利用情況。目前, Hadoop的作業(yè)調(diào)度算法都是將系統(tǒng)中的多類資源抽象成單一資源,分配給作業(yè)的資源均是 節(jié)點資源中固定大小的一部分,稱為槽位。這類基于槽位的作業(yè)調(diào)度算法主要存在三個問 題。首先,這類算法并沒有考慮到節(jié)點的實際運行能力,只是按照運行的任務(wù)個數(shù)來判斷節(jié) 點能否再接受任務(wù),可能會造成集群的某些節(jié)點負載過重。其次,它將多類資源抽象成單一 資源進行公平分配,并未考慮系統(tǒng)中多類資源的公平分配。再者,它忽略了不同類型作業(yè)對 資源的不同需求。作業(yè)占用的資源均是節(jié)點中固定大小的一部分資源,不管作業(yè)對資源需 求的不同。這造成了作業(yè)已分配資源與需求資源之間的不匹配,這種不匹配并不能通過改 變節(jié)點槽位的個數(shù)來解決。

【發(fā)明內(nèi)容】

[0003] 本發(fā)明涉及一種基于Hadoop的任務(wù)優(yōu)化調(diào)度方法,通過動態(tài)分析與估計集群作業(yè) 中各任務(wù)實際資源需求,以及本地節(jié)點的實際負載情況,實現(xiàn)任務(wù)優(yōu)化分配。首先,提出了 集群資源利用分析算法,通過以完成的任務(wù)所需資源量來預(yù)測未進行任務(wù)所需資源,為集 群資源優(yōu)化配置奠定基礎(chǔ);其次,選出待分配任務(wù)方法,建立待運行任務(wù)的隊列;第三,當前 隊列任務(wù)為空且時,選出集群候選任務(wù),使得集群性能最大化。
[0004] 實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種基于Hadoop的任務(wù)優(yōu)化調(diào)度方法,包括 以下步驟:
[0005] 步驟1,分析Hadoop集群中各節(jié)點所有作業(yè)中正在運行任務(wù)的資源需求,每個作業(yè) 包含一個或多個任務(wù),通過測量各任務(wù)已占用資源情況,預(yù)估未執(zhí)行任務(wù)對資源的需求情 況;并根據(jù)資源占用情況,分配任務(wù)到工作節(jié)點;資源包括集群CPU、內(nèi)存和輸入輸出帶寬 10;
[0006] 步驟2,確定任務(wù)的工作節(jié)點后,通過工作調(diào)度器JobTracker向工作節(jié)點的任務(wù)跟 蹤器TaskTracker派發(fā)任務(wù),更新工作節(jié)點待執(zhí)行任務(wù)列表,并根據(jù)數(shù)據(jù)本地任務(wù)優(yōu)先的原 貝1J,優(yōu)化任務(wù)執(zhí)行序列,按順序配置本地資源,進行工作;
[0007] 步驟3,當集群中有節(jié)點作業(yè)隊列為空,且經(jīng)查詢當前作業(yè)隊列中已無任務(wù),以文 件數(shù)據(jù)備份數(shù)、集群全部節(jié)點空閑時間預(yù)測值、磁盤負載量三個指標為參數(shù),選擇Hadoop集 群中其他待執(zhí)行任務(wù)執(zhí)行,實現(xiàn)集群資源利用效能最優(yōu)化。
[0008] 步驟1包括:當任務(wù)t運行完成時,st表示該任務(wù)t在各節(jié)點資源平均利用率,資源 平均利用率st用于表示該任務(wù)對資源的需求情況,st采用如下公式表示:
[0010]其中,η表示Hadoop集群中的節(jié)點數(shù)量,η取值為自然數(shù),St, i表示任務(wù)t在節(jié)點i采 集到的資源利用率,i取值范圍1~η;
[0011]通過已運行任務(wù)對于資源的需求情況來估計未運行任務(wù)對于資源的需求Dt,采用 如下公式表示:
[0013]其中,m表示按照實際的資源進行任務(wù)的調(diào)度時作業(yè)中已運行任務(wù)的集合,m取值 為自然數(shù)。
[0014] 步驟2包括如下步驟:
[0015]步驟2-1,根據(jù)未運行任務(wù)對于資源的需求Dt,由工作調(diào)度器JobTracker根據(jù)任務(wù) 所需數(shù)據(jù)所在節(jié)點位置及該節(jié)點資源閑置情況,選擇任務(wù)工作節(jié)點,優(yōu)先選擇任務(wù)數(shù)據(jù)本 地節(jié)點,若該節(jié)點資源不足,則采用就近原則,選擇現(xiàn)存資源許可的工作節(jié)點;
[0016] 步驟2-2,當工作節(jié)點為本地數(shù)據(jù)節(jié)點時,更新本地任務(wù)序列,將該任務(wù)前置,直接 建立本地工作目錄,運行任務(wù);執(zhí)行任務(wù)所需資源槽位slot由本地資源提供,該節(jié)點所使用 的槽位也是最有可能快速釋放的槽位,該槽位釋放后,資源回歸系統(tǒng)資源池中;
[0017] 步驟2-3,當工作節(jié)點為非本地數(shù)據(jù)節(jié)點時,工作調(diào)度器JobTracke將該任務(wù)所需 文件從共享文件系統(tǒng)復(fù)制到任務(wù)跟蹤器TaskTracker所在的文件系統(tǒng),同時將執(zhí)行任務(wù)過 程中系統(tǒng)所需要的全部文件從分布式緩存復(fù)制到本地磁盤,為非本地數(shù)據(jù)任務(wù)新建一個本 地工作目錄,新建任務(wù)執(zhí)行器TaskRunner執(zhí)行任務(wù);
[0018] 步驟2-4:任務(wù)在執(zhí)行過程中,不論本地任務(wù)還是非本地任務(wù),當任務(wù)執(zhí)行失敗后, 該任務(wù)會進入到系統(tǒng)任務(wù)失敗隊列中,如果任務(wù)失敗隊列不為空,則對其中失敗次數(shù)最多 的任務(wù)進行數(shù)據(jù)本地化篩選,即若是本地數(shù)據(jù)任務(wù),則本地節(jié)點繼續(xù)執(zhí)行該任務(wù);若不是本 地數(shù)據(jù)任務(wù),則選擇該失敗次數(shù)最多的任務(wù)作為下一步執(zhí)行任務(wù),從而優(yōu)化任務(wù)序列。
[0019] 步驟3包括:
[0020]設(shè)在Hadoop集群中未執(zhí)行的任務(wù)組中,1為任務(wù)t在候選節(jié)點上槽位的耗時,R為任 務(wù)在集群中的備份數(shù)目,Qk為任務(wù)在第k個執(zhí)行節(jié)點上的可用槽位數(shù),則任務(wù)t預(yù)期的所需 資源槽位時間T(t)即集群全部節(jié)點空閑時間預(yù)測值為:
[0022] 候選節(jié)點磁盤負載量為節(jié)點自身運行的數(shù)據(jù)輸入輸出量與Hadoop集群節(jié)點間數(shù) 據(jù)輸入輸出量的總和,選擇數(shù)據(jù)交換量最小的任務(wù),忽略網(wǎng)絡(luò)節(jié)點間的磁盤負荷量,該磁盤 的負載量表不為:
[0024] 其中,A為節(jié)點的槽位數(shù),N為讀取數(shù)據(jù)并運行的任務(wù)數(shù),
[0025] 備份權(quán)重W(t)與文件數(shù)據(jù)備份份數(shù)R相關(guān),表示為:
[0027] max(R)和min(R)分別表示任務(wù)最大與最小的文件數(shù)據(jù)數(shù)目,文件數(shù)據(jù)備份數(shù)目越 大,備份權(quán)重W( t)的值越大,T(t)、E(t)與W(t)的取值范圍在[0,1 ]之間,則任務(wù)優(yōu)先排序多 項式公式F(t),表示為:
[0028] F(t) =max{ X Τ(?)+βΧ (l_E(t))+γ X (l_W(t))},
[0029]系數(shù)《;、β、γ為多項式的可調(diào)參數(shù),〇<α,β<1,γ <1,參數(shù)值越小,權(quán)值越高。
[0030] 通過分析Hadoop現(xiàn)有調(diào)度算法在任務(wù)數(shù)據(jù)本地性方面的劣勢,以及考慮到Hadoop 生產(chǎn)集群中網(wǎng)絡(luò)資源的彌足珍貴,任務(wù)如果不得不分配到非本地節(jié)點上,則會浪費等待本 地性節(jié)點或任務(wù)的時間,最終仍會造成不小的網(wǎng)絡(luò)開銷,作業(yè)執(zhí)行效率和資源利用率均會 隨之降低。
[0031] 本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點為:針對Hadoop集群多任務(wù)環(huán)境下的資源優(yōu) 化調(diào)度問題,通過在動態(tài)分析集群CPU、內(nèi)存和10資源利用率,評估同一作業(yè)中各任務(wù)的資 源需求,根據(jù)任務(wù)實際資源需求以及任務(wù)節(jié)點負載情況進行優(yōu)化調(diào)度,以充分利用集群各 節(jié)點資源。
【附圖說明】
[0032] 下面結(jié)合附圖和【具體實施方式】對本發(fā)明做更進一步的具體說明,本發(fā)明的上述 和/或其他方面的優(yōu)點將會變得更加清楚。
[0033]圖1為本發(fā)明方法工作流程圖。
[0034] 圖2為調(diào)度器在任務(wù)的數(shù)據(jù)本地性上表現(xiàn)差異示意圖。
[0035] 圖3為改進后的作業(yè)調(diào)度法與原有方法比較示意圖。
【具體實施方式】
[0036]結(jié)合圖1,本發(fā)明提供了一種基于Hadoop的任務(wù)優(yōu)化調(diào)度方法,步驟如下:
[0037]步驟1:首先對集群作業(yè)中已運行任務(wù)資源占有情況進行統(tǒng)計分析,以便預(yù)估未執(zhí) 行任務(wù)的資源需求。任務(wù)所需資源包含任務(wù)所占用的集群CPU、內(nèi)存和10資源,通過top以及 Iotop工具周期性的測量任務(wù)資源使用情況,并通過Task Tracker的心跳包報告給Job Tracker,Job Tracker對采集到的數(shù)據(jù)進行處理,當任務(wù)t運行完成時,st表示該任務(wù)在各 節(jié)點資源利用率的平均值,可表示為:
[0039]式中,η是節(jié)點數(shù)量,st>1是任務(wù)t在節(jié)點i采集到的資源利用率,表示該任務(wù)的資源 需求,即任務(wù)運行過程中各個采樣點的資源利用率的平均值作為該任務(wù)對CPU、內(nèi)存以及輸 入輸出i〇資源需求。同一作業(yè)中的任務(wù)大多具有相同的程序代碼以及數(shù)據(jù)分塊大小,因此 可以通過已經(jīng)運行完成的任務(wù)的資源需求,來評估作業(yè)中未進行任務(wù)的資源需求,從而確 定未運行任務(wù)的資源需求D t所需的集群節(jié)點,可表示為:
[0041]式中,m表示按照實際的資源進行任務(wù)的調(diào)度,作業(yè)中已運行任務(wù)的集合,
[0042]步驟2:確定候選計算節(jié)點后,如果有出現(xiàn)空閑槽位并請求新的任務(wù),工作調(diào)度器 JobTracker則會把分配任務(wù)的工作交給調(diào)度器來處理,給該節(jié)點分配最合適的任務(wù)。節(jié)點 讀取內(nèi)部調(diào)用最新作業(yè)隊列,判別本地數(shù)據(jù)任務(wù),并將其排列前面。
[0043]步驟2-1:讀取最新的候選任務(wù)列表,并從中選取排列在第一位的Task Tracker, 即接下來最有可能釋放資源的槽位。
[0044] 步驟2-2:對非本地數(shù)據(jù)任務(wù),將本地化作業(yè)文件,從共享文件系統(tǒng)復(fù)制到 TaskTracker所在的文件系統(tǒng)。同時將應(yīng)用程序所需要的全部文件從分布式緩存復(fù)制到本 地磁盤,為任務(wù)新建一個本地工作目錄,新建TaskRunner運行任務(wù)。對本地數(shù)據(jù)任務(wù),直接 建立本地工作目錄,運行任務(wù)。
[0045] 步驟2-3:
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1