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

基于Hadoop的任務(wù)管理方法和系統(tǒng)的制作方法

文檔序號:6633189閱讀:253來源:國知局
基于Hadoop的任務(wù)管理方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種基于Hadoop的任務(wù)管理方法及系統(tǒng),所述方法包括步驟:獲取用戶配置的任務(wù)依賴關(guān)系,加載當(dāng)前任務(wù),并根據(jù)任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù);從任務(wù)狀態(tài)管理器中查詢上級任務(wù)的執(zhí)行結(jié)果,若所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。本發(fā)明避免了任務(wù)獨(dú)立執(zhí)行并導(dǎo)致任務(wù)并發(fā)執(zhí)行的情況,使得任務(wù)能夠統(tǒng)一管理。在當(dāng)前任務(wù)執(zhí)行成功時,就加載下級任務(wù),所述下級任務(wù)在其上級任務(wù)執(zhí)行成功的情況下就可以立即觸發(fā)執(zhí)行,能夠節(jié)約全部任務(wù)執(zhí)行完畢所需耗費(fèi)的運(yùn)行時間,從而提高Hadoop的執(zhí)行效率。
【專利說明】基于Hadoop的任務(wù)管理方法和系統(tǒng)
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及云計算【技術(shù)領(lǐng)域】,特別是涉及一種基于Hadoop的任務(wù)管理方法和系統(tǒng)。
【【背景技術(shù)】】
[0002]近年來,大數(shù)據(jù)平臺Hadoop (分布式計算)技術(shù)應(yīng)用日趨成熟。Hadoop提供了一個分布式集群系統(tǒng),用于大數(shù)據(jù)承載與運(yùn)算。Hadoop是一個開源的技術(shù),在開源社區(qū)該項技術(shù)也不斷成熟和完善,目前已經(jīng)達(dá)到商用要求,同時在各種大數(shù)據(jù)平臺中得到應(yīng)用。
[0003]Hadoop是一個基礎(chǔ)的框架平臺,提供一套底層的API (Applicat1n ProgrammingInterface,應(yīng)用程序編程接口)用于Hadoop接口調(diào)用。用戶可以在控制臺,以應(yīng)用程序和hiveql (數(shù)據(jù)倉庫)腳本方式調(diào)用Hadoop接口,以完成任務(wù)。Hadoop接口的調(diào)用通常屬于控制臺級或者管理員級,任務(wù)管理起來難度大,使用起來不方便。當(dāng)任務(wù)間相互具有依賴時,只能通過用戶編程的方式實現(xiàn)對單一的任務(wù)管理,容易產(chǎn)生大量分散的腳本文件,同時需要管理員或者用戶實時地監(jiān)控各個任務(wù)的執(zhí)行結(jié)果,并根據(jù)執(zhí)行結(jié)果,通過腳本觸發(fā)執(zhí)行后續(xù)任務(wù)。當(dāng)任務(wù)數(shù)量較多時,通常是通過對各個任務(wù)按照執(zhí)行順序設(shè)定不同的執(zhí)行時間,以達(dá)到任務(wù)管理效果,但是這樣容易導(dǎo)致任務(wù)獨(dú)立執(zhí)行并導(dǎo)致任務(wù)并發(fā)執(zhí)行,容易出現(xiàn)任務(wù)結(jié)果輸出錯亂而必須重新執(zhí)行任務(wù)的情況,使得任務(wù)無法統(tǒng)一管理,最終影響Hadoop的執(zhí)行效率。

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

[0004]基于此,有必要針對現(xiàn)有技術(shù)中Hadoop無法對任務(wù)進(jìn)行統(tǒng)一管理的問題,提供一種基于Hadoop的任務(wù)管理方法和系統(tǒng),能夠?qū)哂幸蕾囮P(guān)系的任務(wù)進(jìn)行統(tǒng)一管理。
[0005]一種基于Hadoop的任務(wù)管理方法,包括步驟:
[0006]獲取用戶配置的任務(wù)依賴關(guān)系,加載當(dāng)前任務(wù),并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù);
[0007]從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,若所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);
[0008]監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。
[0009]相應(yīng)地,本發(fā)明還提供一種基于Hadoop的任務(wù)調(diào)度系統(tǒng),包括:
[0010]獲取模塊,用于獲取用戶配置的任務(wù)依賴關(guān)系,加載當(dāng)前任務(wù),并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù);
[0011]任務(wù)觸發(fā)模塊,用于從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,若所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);
[0012]結(jié)果監(jiān)測發(fā)送模塊,用于監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。
[0013]本發(fā)明首先獲取用戶配置的任務(wù)依賴關(guān)系,并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù),然后從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,如果所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);在當(dāng)前任務(wù)的執(zhí)行過程當(dāng)中,監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。本發(fā)明根據(jù)任務(wù)依賴關(guān)系獲得當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù),在上級任務(wù)執(zhí)行成功的前提下,即可觸發(fā)執(zhí)行當(dāng)前任務(wù),因此避免了任務(wù)獨(dú)立執(zhí)行并導(dǎo)致任務(wù)并發(fā)執(zhí)行的情況,使得任務(wù)能夠統(tǒng)一管理。在當(dāng)前任務(wù)執(zhí)行成功時,就加載下級任務(wù),所述下級任務(wù)在其上級任務(wù)執(zhí)行成功的情況下就可以立即觸發(fā)執(zhí)行,避免了任務(wù)間的空余時間,能夠節(jié)約全部任務(wù)執(zhí)行完畢所需耗費(fèi)的運(yùn)行時間,從而提高Hadoop的執(zhí)行效率。
【【專利附圖】

【附圖說明】】
[0014]圖1為本發(fā)明基于Hadoop的任務(wù)管理方法一種實施例的流程圖;
[0015]圖2為本發(fā)明基于Hadoop的任務(wù)管理方法一種實施例的依賴關(guān)系不意圖;
[0016]圖3為本發(fā)明基于Hadoop的任務(wù)管理方法一種實施例的節(jié)點(diǎn)關(guān)系網(wǎng)不意圖;
[0017]圖4為本發(fā)明基于Hadoop的任務(wù)管理系統(tǒng)一種實施例的結(jié)構(gòu)框圖。
【【具體實施方式】】
[0018]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0019]請參閱圖1,其是本發(fā)明基于Hadoop的任務(wù)管理方法一種實施例的流程圖。
[0020]一種基于Hadoop的任務(wù)管理方法,包括步驟:
[0021]SlOl:獲取用戶配置的任務(wù)依賴關(guān)系,加載當(dāng)前任務(wù),并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù);
[0022]用戶通過控制臺界面配置各個任務(wù)的任務(wù)依賴關(guān)系,所述依賴關(guān)系包括起點(diǎn)任務(wù)和除起點(diǎn)任務(wù)外其他各個任務(wù)的執(zhí)行條件,如圖2所示,其是本發(fā)明基于Hadoop的任務(wù)管理方法一種實施例的依賴關(guān)系不意圖。任務(wù)C的依賴任務(wù)A和任務(wù)B執(zhí)行成功,也就是說在任務(wù)A和任務(wù)B執(zhí)行成功的前提下才能執(zhí)行任務(wù)C,只要任務(wù)A和任務(wù)B其中有一個執(zhí)行不成功,則任務(wù)C不執(zhí)行。
[0023]獲取用戶配置的任務(wù)依賴關(guān)系,從所述依賴關(guān)系中確定起點(diǎn)任務(wù),以及起點(diǎn)任務(wù)的下級任務(wù),啟動起點(diǎn)任務(wù)執(zhí)行,如果有多個起點(diǎn)任務(wù),則將起點(diǎn)任務(wù)并發(fā)執(zhí)行,起點(diǎn)任務(wù)執(zhí)行后,將起點(diǎn)任務(wù)的下級任務(wù)定義為當(dāng)前任務(wù),并加載該當(dāng)前任務(wù),然后根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù)。上面的例子中,對于任務(wù)C,任務(wù)A和任務(wù)B就是任務(wù)C的上級任務(wù),對于任務(wù)A或任務(wù)B,任務(wù)C就是下級任務(wù)。
[0024]S102:從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,若所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);
[0025]訪問用于存儲各任務(wù)執(zhí)行狀態(tài)的任務(wù)狀態(tài)管理器,從中查詢并獲取當(dāng)前任務(wù)的上級任務(wù)的執(zhí)行結(jié)果,在當(dāng)前任務(wù)的所有上級任務(wù)都執(zhí)行成功的前提下,說明當(dāng)前任務(wù)符合任務(wù)依賴關(guān)系中的該任務(wù)的執(zhí)行條件,然后觸發(fā)執(zhí)行當(dāng)前任務(wù)。
[0026]S103:監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。
[0027]在當(dāng)前任務(wù)的執(zhí)行過程當(dāng)中,實時監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)正在執(zhí)行并未獲得結(jié)果,則在任務(wù)管理器中標(biāo)定該當(dāng)前任務(wù)執(zhí)行狀態(tài)為“正在執(zhí)行”。如果當(dāng)前任務(wù)執(zhí)行成功,則將該執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器,并由任務(wù)狀態(tài)管理器標(biāo)定該當(dāng)前任務(wù)執(zhí)行狀態(tài)為“執(zhí)行成功”,然后加載當(dāng)前任務(wù)的下級任務(wù),只要所述下級任務(wù)所有的上級任務(wù)都執(zhí)行成功就可觸發(fā)執(zhí)行下級任務(wù),依次類推,直到所有任務(wù)執(zhí)行完畢為止,或者任務(wù)終止執(zhí)行為止。
[0028]本發(fā)明首先獲取用戶配置的任務(wù)依賴關(guān)系,并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù),然后從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,如果所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);在當(dāng)前任務(wù)的執(zhí)行過程當(dāng)中,監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。本發(fā)明根據(jù)任務(wù)依賴關(guān)系獲得當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù),在上級任務(wù)執(zhí)行成功的前提下,即可觸發(fā)執(zhí)行當(dāng)前任務(wù),因此避免了任務(wù)獨(dú)立執(zhí)行并導(dǎo)致任務(wù)并發(fā)執(zhí)行的情況,使得任務(wù)能夠統(tǒng)一管理。在當(dāng)前任務(wù)執(zhí)行成功時,就加載下級任務(wù),所述下級任務(wù)在其上級任務(wù)執(zhí)行成功的情況下就可以立即觸發(fā)執(zhí)行,避免了任務(wù)間的空余時間,能夠節(jié)約全部任務(wù)執(zhí)行完畢所需耗費(fèi)的運(yùn)行時間,從而提高Hadoop的執(zhí)行效率。
[0029]在一種實施例中,上述步驟SlOl中,根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù)的步驟,具體可以包括以下步驟。
[0030]S201:根據(jù)所述任務(wù)依賴關(guān)系生成節(jié)點(diǎn)關(guān)系網(wǎng),并確定所述節(jié)點(diǎn)關(guān)系網(wǎng)中當(dāng)前任務(wù)所在的當(dāng)前節(jié)點(diǎn),其中,所述節(jié)點(diǎn)關(guān)系網(wǎng)中一個節(jié)點(diǎn)映射一個任務(wù);
[0031]以起點(diǎn)任務(wù)作為節(jié)點(diǎn)關(guān)系網(wǎng)的起點(diǎn),然后獲取上級任務(wù)的起點(diǎn)任務(wù)的任務(wù),然后將該任務(wù)作為節(jié)點(diǎn)關(guān)系網(wǎng)中起點(diǎn)向下的延伸,依次類推,以生成節(jié)點(diǎn)關(guān)系網(wǎng)。例如,一個任務(wù)依賴關(guān)系如下描述,起點(diǎn)任務(wù)為基礎(chǔ)任務(wù)1、基礎(chǔ)任務(wù)2以及基礎(chǔ)任務(wù)3,加工任務(wù)I依賴基礎(chǔ)任務(wù)I執(zhí)行成功,加工任務(wù)2依賴基礎(chǔ)任務(wù)2和基礎(chǔ)任務(wù)3執(zhí)行成功,業(yè)務(wù)任務(wù)I依賴加工任務(wù)I執(zhí)行成功,業(yè)務(wù)任務(wù)2依賴加工任務(wù)I和加工任務(wù)2執(zhí)行成功。依據(jù)該任務(wù)依賴關(guān)系生成的節(jié)點(diǎn)關(guān)系網(wǎng)如圖3所示。
[0032]生成節(jié)點(diǎn)關(guān)系網(wǎng)后,確定當(dāng)前任務(wù)在所述節(jié)點(diǎn)關(guān)系網(wǎng)中的位置,并將該位置的節(jié)點(diǎn)標(biāo)定位當(dāng)前節(jié)點(diǎn)。
[0033]S202:分別向上和向下遍歷與所述當(dāng)前節(jié)點(diǎn)相連的上級節(jié)點(diǎn)和下級節(jié)點(diǎn),將所述上級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的上級任務(wù),將所述下級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的下級任務(wù)。
[0034]在節(jié)點(diǎn)關(guān)系網(wǎng)中,以當(dāng)前節(jié)點(diǎn)為基準(zhǔn),向上遍歷與當(dāng)前節(jié)點(diǎn)相連的上級節(jié)點(diǎn),然后將所述上級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的上級任務(wù),然后向下遍歷與當(dāng)前節(jié)點(diǎn)相連的下級節(jié)點(diǎn),然后將所述下級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的下級任務(wù)。在圖3中,以加工任務(wù)2為例,以該節(jié)點(diǎn)為基準(zhǔn)向上遍歷的節(jié)點(diǎn)有基礎(chǔ)任務(wù)2和基礎(chǔ)任務(wù)3,向下遍歷的節(jié)點(diǎn)有業(yè)務(wù)任務(wù)2,因此將基礎(chǔ)任務(wù)2和基礎(chǔ)任務(wù)3判定為加工任務(wù)2的上級任務(wù),將業(yè)務(wù)任務(wù)2判定為加工任務(wù)2的下級任務(wù)。
[0035]根據(jù)所述任務(wù)依賴關(guān)系生成節(jié)點(diǎn)關(guān)系網(wǎng),然后通過遍歷節(jié)點(diǎn)的方式獲取當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù),能夠快速、準(zhǔn)確并完整地查詢當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù),能夠保證各任務(wù)的執(zhí)行嚴(yán)格遵循任務(wù)依賴關(guān)系,避免導(dǎo)致任務(wù)并發(fā)執(zhí)行的情況,且使得據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù)的過程更加容易通過計算機(jī)程序?qū)崿F(xiàn),減輕了該步驟的實現(xiàn)難度,增強(qiáng)系統(tǒng)的實時性。
[0036]在一個實施例中,上述步驟S102中,從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果的步驟之后,進(jìn)一步還可以包括以下步驟。
[0037]S301:若當(dāng)前任務(wù)的某一上級任務(wù)執(zhí)行失敗,則終止執(zhí)行當(dāng)前任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
[0038]從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果后,如果當(dāng)前任務(wù)的某一上級任務(wù)執(zhí)行失敗,則說明當(dāng)前任務(wù)不具備能夠執(zhí)行的條件,此時終止執(zhí)行當(dāng)前任務(wù),然后將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器,由任務(wù)狀態(tài)管理器將當(dāng)前任務(wù)標(biāo)記為執(zhí)行失敗。
[0039]在當(dāng)前任務(wù)的某一上級任務(wù)執(zhí)行失敗的情況下,終止執(zhí)行當(dāng)前任務(wù),能夠避免當(dāng)前任務(wù)錯誤執(zhí)行,減少了 Hadoop錯誤執(zhí)行任務(wù)的可能性,從而Hadoop可以將硬件和線程資源分配運(yùn)行其他符合執(zhí)行條件的任務(wù),提高Hadoop的運(yùn)行效率。
[0040]在一個實施例中,上述步驟S103中,監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果的步驟之后,進(jìn)一步還包括步驟:
[0041]S401:若當(dāng)前任務(wù)執(zhí)行失敗,則終止執(zhí)行下級任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果以及下級任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
[0042]在監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果時,如果當(dāng)前任務(wù)執(zhí)行失敗,則說明當(dāng)前任務(wù)的下級任務(wù)不具備能夠執(zhí)行的條件,此時終止執(zhí)行下級任務(wù),然后將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果以及下級任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器,由任務(wù)狀態(tài)管理器將當(dāng)前任務(wù)和當(dāng)前任務(wù)的下級任務(wù)標(biāo)記為執(zhí)行失敗。
[0043]在當(dāng)前任務(wù)執(zhí)行失敗的情況下,終止執(zhí)行下級任務(wù),能夠避免當(dāng)前任務(wù)的下級任務(wù)錯誤執(zhí)行,進(jìn)一步減少了 Hadoop錯誤執(zhí)行任務(wù)的可能性,進(jìn)一步提高Hadoop的運(yùn)行效率。
[0044]請參閱圖4,其是本發(fā)明基于Hadoop的任務(wù)管理系統(tǒng)一種實施例的結(jié)構(gòu)框圖。
[0045]一種基于Hadoop的任務(wù)調(diào)度系統(tǒng),包括:
[0046]獲取模塊301,用于獲取用戶配置的任務(wù)依賴關(guān)系,加載當(dāng)前任務(wù),并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù);
[0047]用戶通過控制臺界面配置各個任務(wù)的任務(wù)依賴關(guān)系,所述依賴關(guān)系包括起點(diǎn)任務(wù)和除起點(diǎn)任務(wù)外其他各個任務(wù)的執(zhí)行條件,如圖2所不,任務(wù)C的依賴任務(wù)A和任務(wù)B執(zhí)行成功,也就是說在任務(wù)A和任務(wù)B執(zhí)行成功的如提下才能執(zhí)行任務(wù)C,只要任務(wù)A和任務(wù)B其中有一個執(zhí)行不成功,則任務(wù)C不執(zhí)行。
[0048]獲取模塊301獲取用戶配置的任務(wù)依賴關(guān)系,從所述依賴關(guān)系中確定起點(diǎn)任務(wù),以及起點(diǎn)任務(wù)的下級任務(wù),啟動起點(diǎn)任務(wù)執(zhí)行,如果有多個起點(diǎn)任務(wù),則將起點(diǎn)任務(wù)并發(fā)執(zhí)行,起點(diǎn)任務(wù)執(zhí)行后,然后獲取模塊301將起點(diǎn)任務(wù)的下級任務(wù)定義為當(dāng)前任務(wù),并加載該當(dāng)前任務(wù)。之后獲取模塊301根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù)。上面的例子中,對于任務(wù)C,任務(wù)A和任務(wù)B就是任務(wù)C的上級任務(wù),對于任務(wù)A或任務(wù)B,任務(wù)C就是下級任務(wù)。
[0049]任務(wù)觸發(fā)模塊302,用于從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,若所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);
[0050]任務(wù)觸發(fā)模塊302訪問用于存儲各任務(wù)執(zhí)行狀態(tài)的任務(wù)狀態(tài)管理器,從中查詢并獲取當(dāng)前任務(wù)的上級任務(wù)的執(zhí)行結(jié)果。在當(dāng)前任務(wù)的所有上級任務(wù)都執(zhí)行成功的前提下,說明當(dāng)前任務(wù)符合任務(wù)依賴關(guān)系中的該任務(wù)的執(zhí)行條件,然后通過任務(wù)觸發(fā)模塊302觸發(fā)執(zhí)行當(dāng)前任務(wù)。
[0051]結(jié)果監(jiān)測發(fā)送模塊303,用于監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。
[0052]在當(dāng)前任務(wù)的執(zhí)行過程當(dāng)中,結(jié)果監(jiān)測發(fā)送模塊303實時監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)正在執(zhí)行并未獲得結(jié)果,則任務(wù)管理器標(biāo)定該當(dāng)前任務(wù)執(zhí)行狀態(tài)為“正在執(zhí)行”。如果當(dāng)前任務(wù)執(zhí)行成功,則結(jié)果監(jiān)測發(fā)送模塊303將該執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器,并由任務(wù)狀態(tài)管理器標(biāo)定該當(dāng)前任務(wù)執(zhí)行狀態(tài)為“執(zhí)行成功”,然后結(jié)果監(jiān)測發(fā)送模塊303加載當(dāng)前任務(wù)的下級任務(wù),只要所述下級任務(wù)所有的上級任務(wù)都執(zhí)行成功就可觸發(fā)執(zhí)行下級任務(wù),依次類推,直到所有任務(wù)執(zhí)行完畢為止,或者任務(wù)終止執(zhí)行為止。
[0053]本發(fā)明首先獲取模塊301獲取用戶配置的任務(wù)依賴關(guān)系,并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù),然后任務(wù)觸發(fā)模塊302從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,如果所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù);在當(dāng)前任務(wù)的執(zhí)行過程當(dāng)中,結(jié)果監(jiān)測發(fā)送模塊303監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。本發(fā)明通過獲取模塊301根據(jù)任務(wù)依賴關(guān)系獲得當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù),在上級任務(wù)執(zhí)行成功的前提下,即可觸發(fā)執(zhí)行當(dāng)前任務(wù),因此避免了任務(wù)獨(dú)立執(zhí)行并導(dǎo)致任務(wù)并發(fā)執(zhí)行的情況,使得任務(wù)能夠統(tǒng)一管理。在當(dāng)前任務(wù)執(zhí)行成功時,就加載下級任務(wù),所述下級任務(wù)在其上級任務(wù)執(zhí)行成功的情況下就可以立即觸發(fā)執(zhí)行,避免了任務(wù)間的空余時間,能夠節(jié)約全部任務(wù)執(zhí)行完畢所需耗費(fèi)的運(yùn)行時間,從而提高Hadoop的執(zhí)行效率。
[0054]在一種實施例中,上述獲取模塊301可以包括以下子模塊。
[0055]生成模塊,用于根據(jù)所述任務(wù)依賴關(guān)系生成節(jié)點(diǎn)關(guān)系網(wǎng),并確定所述節(jié)點(diǎn)關(guān)系網(wǎng)中當(dāng)前任務(wù)所在的當(dāng)前節(jié)點(diǎn),其中,所述節(jié)點(diǎn)關(guān)系網(wǎng)中一個節(jié)點(diǎn)映射一個任務(wù);
[0056]生成模塊以起點(diǎn)任務(wù)作為節(jié)點(diǎn)關(guān)系網(wǎng)的起點(diǎn),然后生成模塊獲取上級任務(wù)的起點(diǎn)任務(wù)的任務(wù),然后將該任務(wù)作為節(jié)點(diǎn)關(guān)系網(wǎng)中起點(diǎn)向下的延伸,依次類推,以生成節(jié)點(diǎn)關(guān)系網(wǎng)。例如,一個任務(wù)依賴關(guān)系如下描述,起點(diǎn)任務(wù)為基礎(chǔ)任務(wù)1、基礎(chǔ)任務(wù)2以及基礎(chǔ)任務(wù)3,加工任務(wù)I依賴基礎(chǔ)任務(wù)I執(zhí)行成功,加工任務(wù)2依賴基礎(chǔ)任務(wù)2和基礎(chǔ)任務(wù)3執(zhí)行成功,業(yè)務(wù)任務(wù)I依賴加工任務(wù)I執(zhí)行成功,業(yè)務(wù)任務(wù)2依賴加工任務(wù)I和加工任務(wù)2執(zhí)行成功。依據(jù)該任務(wù)依賴關(guān)系生成的節(jié)點(diǎn)關(guān)系網(wǎng)如圖3所示。
[0057]生成模塊生成節(jié)點(diǎn)關(guān)系網(wǎng)后,確定當(dāng)前任務(wù)在所述節(jié)點(diǎn)關(guān)系網(wǎng)中的位置,并將該位置的節(jié)點(diǎn)標(biāo)定位當(dāng)前節(jié)點(diǎn)。
[0058]遍歷判定模塊,用于分別向上和向下遍歷與所述當(dāng)前節(jié)點(diǎn)相連的上級節(jié)點(diǎn)和下級節(jié)點(diǎn),將所述上級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的上級任務(wù),將所述下級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的下級任務(wù)。
[0059]在節(jié)點(diǎn)關(guān)系網(wǎng)中,遍歷判定模塊以當(dāng)前節(jié)點(diǎn)為基準(zhǔn),向上遍歷與當(dāng)前節(jié)點(diǎn)相連的上級節(jié)點(diǎn),然后將所述上級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的上級任務(wù),然后遍歷判定模塊向下遍歷與當(dāng)前節(jié)點(diǎn)相連的下級節(jié)點(diǎn),之后將所述下級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的下級任務(wù)。在圖3中,以加工任務(wù)2為例,以該節(jié)點(diǎn)為基準(zhǔn)向上遍歷的節(jié)點(diǎn)有基礎(chǔ)任務(wù)2和基礎(chǔ)任務(wù)3,向下遍歷的節(jié)點(diǎn)有業(yè)務(wù)任務(wù)2,因此遍歷判定模塊將基礎(chǔ)任務(wù)2和基礎(chǔ)任務(wù)3判定為加工任務(wù)2的上級任務(wù),將業(yè)務(wù)任務(wù)2判定為加工任務(wù)2的下級任務(wù)。
[0060]生成模塊根據(jù)所述任務(wù)依賴關(guān)系生成節(jié)點(diǎn)關(guān)系網(wǎng),然后遍歷判定模塊通過遍歷節(jié)點(diǎn)的方式獲取當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù),能夠快速、準(zhǔn)確并完整地查詢當(dāng)前任務(wù)的上級任務(wù)和下級任務(wù),能夠保證各任務(wù)的執(zhí)行嚴(yán)格遵循任務(wù)依賴關(guān)系,避免導(dǎo)致任務(wù)并發(fā)執(zhí)行的情況,且使得據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù)的過程更加容易通過計算機(jī)程序?qū)崿F(xiàn),減輕了該步驟的實現(xiàn)難度,增強(qiáng)系統(tǒng)的實時性。
[0061 ] 在一個實施例中,進(jìn)一步還可以包括以下模塊。
[0062]第一終止模塊,用于在某一上級任務(wù)執(zhí)行失敗時,終止執(zhí)行當(dāng)前任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
[0063]從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果后,如果當(dāng)前任務(wù)的某一上級任務(wù)執(zhí)行失敗,則說明當(dāng)前任務(wù)不具備能夠執(zhí)行的條件,此時通過第一終止模塊終止執(zhí)行當(dāng)前任務(wù),然后第一終止模塊將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器,由任務(wù)狀態(tài)管理器將當(dāng)前任務(wù)標(biāo)記為執(zhí)行失敗。
[0064]在當(dāng)前任務(wù)的某一上級任務(wù)執(zhí)行失敗的情況下,第一終止模塊終止執(zhí)行當(dāng)前任務(wù),能夠避免當(dāng)前任務(wù)錯誤執(zhí)行,減少了 Hadoop錯誤執(zhí)行任務(wù)的可能性,從而Hadoop可以將硬件和線程資源分配運(yùn)行其他符合執(zhí)行條件的任務(wù),提高Hadoop的運(yùn)行效率。
[0065]在一個實施例中,進(jìn)一步還可以包括以下模塊。
[0066]第二終止模塊,用于在當(dāng)前任務(wù)執(zhí)行失敗時,終止執(zhí)行下級任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果以及下級任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
[0067]在監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果時,如果當(dāng)前任務(wù)執(zhí)行失敗,則說明當(dāng)前任務(wù)的下級任務(wù)不具備能夠執(zhí)行的條件,此時通過第二終止模塊終止執(zhí)行下級任務(wù),然后第二終止模塊將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果以及下級任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器,由任務(wù)狀態(tài)管理器將當(dāng)前任務(wù)和當(dāng)前任務(wù)的下級任務(wù)標(biāo)記為執(zhí)行失敗。
[0068]在當(dāng)前任務(wù)執(zhí)行失敗的情況下,第二終止模塊終止執(zhí)行下級任務(wù),能夠避免當(dāng)前任務(wù)的下級任務(wù)錯誤執(zhí)行,進(jìn)一步減少了 Hadoop錯誤執(zhí)行任務(wù)的可能性,進(jìn)一步提高Hadoop的運(yùn)行效率。
[0069]以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種基于Hadoop的任務(wù)管理方法,其特征在于,包括步驟: 獲取用戶配置的任務(wù)依賴關(guān)系,加載當(dāng)前任務(wù),并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù); 從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,若所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù); 監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。
2.根據(jù)權(quán)利要求1所述的基于Hadoop的任務(wù)管理方法,其特征在于,根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù)的步驟,具體包括: 根據(jù)所述任務(wù)依賴關(guān)系生成節(jié)點(diǎn)關(guān)系網(wǎng),并確定所述節(jié)點(diǎn)關(guān)系網(wǎng)中當(dāng)前任務(wù)所在的當(dāng)前節(jié)點(diǎn),其中,所述節(jié)點(diǎn)關(guān)系網(wǎng)中一個節(jié)點(diǎn)映射一個任務(wù); 分別向上和向下遍歷與所述當(dāng)前節(jié)點(diǎn)相連的上級節(jié)點(diǎn)和下級節(jié)點(diǎn),將所述上級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的上級任務(wù),將所述下級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的下級任務(wù)。
3.根據(jù)權(quán)利要求1所述的基于Hadoop的任務(wù)管理方法,其特征在于,從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果的步驟之后,進(jìn)一步還包括步驟: 若當(dāng)前任務(wù)的某一上級任務(wù)執(zhí)行失敗,則終止執(zhí)行當(dāng)前任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
4.根據(jù)權(quán)利要求1所述的基于Hadoop的任務(wù)管理方法,其特征在于,監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果的步驟之后,進(jìn)一步還包括步驟: 若當(dāng)前任務(wù)執(zhí)行失敗,則終止執(zhí)行下級任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果以及下級任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
5.一種基于Hadoop的任務(wù)調(diào)度系統(tǒng),其特征在于,包括: 獲取模塊,用于獲取用戶配置的任務(wù)依賴關(guān)系,加載當(dāng)前任務(wù),并根據(jù)所述任務(wù)依賴關(guān)系確定當(dāng)前任務(wù)的上級任務(wù)以及下級任務(wù); 任務(wù)觸發(fā)模塊,用于從任務(wù)狀態(tài)管理器中查詢所述上級任務(wù)的執(zhí)行結(jié)果,若所有的上級任務(wù)執(zhí)行成功,則觸發(fā)執(zhí)行當(dāng)前任務(wù); 結(jié)果監(jiān)測發(fā)送模塊,用于監(jiān)測當(dāng)前任務(wù)的執(zhí)行結(jié)果,如果當(dāng)前任務(wù)執(zhí)行成功,則將所述執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器并觸發(fā)加載下級任務(wù)。
6.根據(jù)權(quán)利要求5所述的基于Hadoop的任務(wù)管理系統(tǒng),其特征在于,所述獲取模塊包括: 生成模塊,用于根據(jù)所述任務(wù)依賴關(guān)系生成節(jié)點(diǎn)關(guān)系網(wǎng),并確定所述節(jié)點(diǎn)關(guān)系網(wǎng)中當(dāng)前任務(wù)所在的當(dāng)前節(jié)點(diǎn),其中,所述節(jié)點(diǎn)關(guān)系網(wǎng)中一個節(jié)點(diǎn)映射一個任務(wù); 遍歷判定模塊,用于分別向上和向下遍歷與所述當(dāng)前節(jié)點(diǎn)相連的上級節(jié)點(diǎn)和下級節(jié)點(diǎn),將所述上級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的上級任務(wù),將所述下級節(jié)點(diǎn)所映射的任務(wù)判定為當(dāng)前任務(wù)的下級任務(wù)。
7.根據(jù)權(quán)利要求5所述的基于Hadoop的任務(wù)管理系統(tǒng),其特征在于,還包括: 第一終止模塊,用于在某一上級任務(wù)執(zhí)行失敗時,終止執(zhí)行當(dāng)前任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
8.根據(jù)權(quán)利要求5所述的基于Hadoop的任務(wù)管理系統(tǒng),其特征在于,還包括: 第二終止模塊,用于在當(dāng)前任務(wù)執(zhí)行失敗時,終止執(zhí)行下級任務(wù),并將當(dāng)前任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果以及下級任務(wù)執(zhí)行失敗的執(zhí)行結(jié)果發(fā)送給任務(wù)狀態(tài)管理器。
【文檔編號】G06F9/44GK104461502SQ201410614126
【公開日】2015年3月25日 申請日期:2014年11月3日 優(yōu)先權(quán)日:2014年11月3日
【發(fā)明者】王海山, 李天旺 申請人:廣州匯訊營銷咨詢有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
黑水县| 金坛市| 根河市| 房产| 理塘县| 民丰县| 新和县| 肇州县| 阿合奇县| 永登县| 富宁县| 内黄县| 庆云县| 边坝县| 淮阳县| 拉萨市| 全南县| 司法| 长葛市| 岑溪市| 师宗县| 方城县| 潜江市| 安岳县| 正蓝旗| 湖北省| 岳阳市| 香河县| 禹州市| SHOW| 大同县| 新巴尔虎右旗| 洛浦县| 烟台市| 博白县| 且末县| 盐城市| 交口县| 肃宁县| 汽车| 江源县|