两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

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

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

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

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