用于生成作業(yè)告警的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例總體上涉及計(jì)算機(jī)領(lǐng)域,更具體地,涉及用于生成作業(yè)告警的方法和系統(tǒng)。
【背景技術(shù)】
[0002]支持并行計(jì)算的作業(yè)處理框架因其能夠及時(shí)、有效地處理大數(shù)據(jù)集而得到廣泛的應(yīng)用。在這樣的作業(yè)處理框架中,一個(gè)作業(yè)(job)被劃分為在一個(gè)或多個(gè)階段執(zhí)行的多個(gè)任務(wù)(task)。每個(gè)階段中的任務(wù)可以被分配到不同的計(jì)算節(jié)點(diǎn)中并行處理,從而提高作業(yè)處理效率。例如,MapReduce (映射-化簡(jiǎn))框架就是一種目前常被使用的并行作業(yè)處理框架,其在web訪問日志分析、文檔聚類、機(jī)器學(xué)習(xí)、數(shù)據(jù)統(tǒng)計(jì)、基于統(tǒng)計(jì)的機(jī)器翻譯等領(lǐng)域均有應(yīng)用。
[0003]在并行作業(yè)處理過程中,往往需要一些計(jì)算或存儲(chǔ)資源的支持。例如,當(dāng)一個(gè)作業(yè)在多個(gè)階段中被執(zhí)行時(shí),上一階段的輸出(也可以稱為“中間結(jié)果”)往往會(huì)被寫入到計(jì)算節(jié)點(diǎn)的本地磁盤,以便在下一階段的任務(wù)中被讀取作為輸入。當(dāng)完成作業(yè)的處理時(shí),該作業(yè)的輸出數(shù)據(jù)可以被存儲(chǔ)在例如分布式文件系統(tǒng)等存儲(chǔ)系統(tǒng)中。對(duì)于涉及大數(shù)據(jù)集的作業(yè)處理而言,并行處理系統(tǒng)能否支持作業(yè)的資源開銷是系統(tǒng)管理員和作業(yè)開發(fā)人員關(guān)心的問題。作業(yè)告警(alert)可以用于指示系統(tǒng)資源開銷的問題。
[0004]在生成作業(yè)告警的已知方案中,當(dāng)一個(gè)作業(yè)被提交之后,作業(yè)處理系統(tǒng)直接處理該作業(yè)。在作業(yè)處理過程中,如果所產(chǎn)生的中間結(jié)果的存儲(chǔ)量大于本地磁盤的可用存儲(chǔ)空間,或者作業(yè)的最終輸出數(shù)據(jù)的存儲(chǔ)量大于存儲(chǔ)系統(tǒng)的可用存儲(chǔ)空間,作業(yè)處理系統(tǒng)生成告警。然而,在磁盤空間不足或者存儲(chǔ)系統(tǒng)空間不足這樣的嚴(yán)重問題已經(jīng)發(fā)生的情況下生成告警,會(huì)造成作業(yè)的中間結(jié)果或輸出數(shù)據(jù)的丟失和損壞。在這種情況下,系統(tǒng)管理員或作業(yè)開發(fā)人員無法主動(dòng)避免存儲(chǔ)空間不足等資源開銷問題,而是在根據(jù)告警獲知資源開銷問題發(fā)生之后被動(dòng)地修復(fù)故障,從而不能夠及時(shí)處理系統(tǒng)故障。另外,如果在計(jì)算節(jié)點(diǎn)中產(chǎn)生的中間結(jié)果的量過多,也將引起對(duì)該計(jì)算節(jié)點(diǎn)的I/o資源和計(jì)算資源(例如CPU處理)的較大挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0005]鑒于上述以及其他潛在問題,本領(lǐng)域中需要一種前瞻性的作業(yè)告警的解決方案。
[0006]根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于生成作業(yè)告警的方法。所述方法包括:通過分析歷史作業(yè)來確定目標(biāo)作業(yè)在至少一個(gè)階段中的輸入輸出的特性,所述目標(biāo)作業(yè)將要在所述至少一個(gè)階段中被并行處理;基于所述輸入輸出的特性,計(jì)算與所述目標(biāo)作業(yè)的處理相關(guān)聯(lián)的資源開銷;以及響應(yīng)于所述資源開銷超過預(yù)定閾值,生成針對(duì)所述目標(biāo)作業(yè)的生敬口目。
[0007]根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于生成作業(yè)告警的系統(tǒng)。所述系統(tǒng)包括:特性確定單元,被配置為通過分析歷史作業(yè)來確定目標(biāo)作業(yè)在至少一個(gè)階段中的輸入輸出的特性,所述目標(biāo)作業(yè)將要在所述至少一個(gè)階段中被并行處理;資源開銷計(jì)算單元,被配置為基于所述輸入輸出的特性,計(jì)算與所述目標(biāo)作業(yè)的處理相關(guān)聯(lián)的資源開銷;以及告警生成單元,被配置為響應(yīng)于所述資源開銷超過預(yù)定閾值,生成針對(duì)所述目標(biāo)作業(yè)的告警。
[0008]通過下文描述將會(huì)理解,根據(jù)本發(fā)明的實(shí)施例,歷史作業(yè)被用于確定目標(biāo)作業(yè)的輸入輸出的特性,從而可以計(jì)算目標(biāo)作業(yè)的資源開銷。因此,在目標(biāo)作業(yè)被處理之前,針對(duì)目標(biāo)作業(yè)的告警可以基于所計(jì)算的資源開銷而被生成。以此方式,可以前瞻性地在資源開銷問題發(fā)生之前生成針對(duì)目標(biāo)作業(yè)的告警,使得管理員或開發(fā)人員能夠提前發(fā)現(xiàn)故障并做出積極的應(yīng)對(duì)舉措,避免了在目標(biāo)作業(yè)被處理時(shí)中間結(jié)果或輸出數(shù)據(jù)的丟失和損壞。本發(fā)明的其他特征和優(yōu)點(diǎn)將通過下文描述而變得容易理解。
【附圖說明】
[0009]通過結(jié)合附圖對(duì)本公開示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本公開示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。
[0010]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器的框圖;
[0011]圖2圖示了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的用于生成作業(yè)告警的方法的流程圖;以及
[0012]圖3示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的用于生成作業(yè)告警的系統(tǒng)的框圖。
【具體實(shí)施方式】
[0013]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0014]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。
[0015]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
[0016]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
[0017]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
[0018]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM) 30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0019]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0020]計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(輸入輸出)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
[0021]在對(duì)示例實(shí)施例的描述中,術(shù)語“包括”及其類似用語表示開放性包含,S卩“包括但不限于”。術(shù)語“基于”表示“至少部分地基于”。術(shù)語“一個(gè)實(shí)施例”或“該實(shí)施例”表示“至少一個(gè)實(shí)施例”。術(shù)語“作業(yè)”是指任何計(jì)算/處理任務(wù),例如數(shù)據(jù)分析、文檔聚類、機(jī)器學(xué)習(xí)、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)挖掘,等等。術(shù)語“目標(biāo)作業(yè)”是指待處理的作業(yè);并且術(shù)語“歷史作業(yè)”是已被處理的作業(yè)。
[0022]下面將詳細(xì)描述本發(fā)明的實(shí)施例。通過下文描述將會(huì)理解,本發(fā)明的核心創(chuàng)造性思想之一在于:歷史作業(yè)被用于確定目標(biāo)作業(yè)的輸入輸出的特性,從而可以計(jì)算目標(biāo)作業(yè)的資源開銷。因此,在目標(biāo)作業(yè)被處理之前,針對(duì)目標(biāo)作業(yè)的告警可以基于所計(jì)算的資源開銷而被生成。以此方式,可以前瞻性地在資源開銷問題發(fā)生之前生成針對(duì)目標(biāo)作業(yè)的告警,使得管理員或開發(fā)人員能夠提前發(fā)現(xiàn)故障并做出積極的應(yīng)對(duì)舉措,避免了在目標(biāo)作業(yè)被處理時(shí)中間結(jié)果或輸出數(shù)據(jù)的丟失和損壞。
[0023]現(xiàn)在參看圖2,其示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于生成作業(yè)告警的方法200的流程圖。在步驟S201,通過分析歷史作業(yè)來確定目標(biāo)作業(yè)在