国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種事件調(diào)度方法及裝置的制造方法

      文檔序號:10593926閱讀:179來源:國知局
      一種事件調(diào)度方法及裝置的制造方法
      【專利摘要】本發(fā)明公開了一種事件調(diào)度方法及裝置,用以使資源調(diào)度方法根據(jù)系統(tǒng)負(fù)載情況進行實時變化,實現(xiàn)最優(yōu)化調(diào)度的目的。所述方法包括:實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況;接收作業(yè)請求事件;根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理所述作業(yè)請求事件;采用選擇的調(diào)度器調(diào)度資源。該方法在系統(tǒng)負(fù)載較低時使用FIFO進行資源調(diào)度,并在系統(tǒng)負(fù)載達到均衡狀態(tài)以后,若作業(yè)請求事件有優(yōu)先級要求則采用Capacity Scheduler進行資源調(diào)度,無優(yōu)先級要求則采用Fair Scheduler進行資源調(diào)度,能使系統(tǒng)資源實時處于最佳調(diào)度狀態(tài)。
      【專利說明】
      一種事件調(diào)度方法及裝置
      技術(shù)領(lǐng)域
      [0001 ]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種事件調(diào)度方法及裝置。
      【背景技術(shù)】
      [0002]隨著計算機技術(shù)的飛速發(fā)展,作業(yè)調(diào)度成為了業(yè)內(nèi)的研究重點之一。作業(yè)調(diào)度的主要功能是根據(jù)作業(yè)控制塊中的信息,審查系統(tǒng)能否滿足用戶作業(yè)的資源需求,以及按照一定的算法,從外存的后備隊列中選取某些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、分配必要的資源。作業(yè)調(diào)度方法在很大程度上決定了系統(tǒng)資源使用的有效性以及作業(yè)請求的處理時長。
      [0003]目前,在對作業(yè)請求事件進行處理時,均是采用單一的調(diào)度方法,這些現(xiàn)有的調(diào)度方法均有其各自的優(yōu)缺點,而系統(tǒng)負(fù)載會隨著請求事件的多少有所變動,采用單一的調(diào)度方法不能使系統(tǒng)資源實時處于最佳調(diào)度狀態(tài)。

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

      [0004]本發(fā)明提供一種事件調(diào)度方法及裝置,用以使資源調(diào)度方法根據(jù)系統(tǒng)負(fù)載情況進行實時變化,實現(xiàn)最優(yōu)化調(diào)度的目的。
      [0005]本發(fā)明提供一種事件調(diào)度方法,包括:
      [0006]實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況;
      [0007]接收作業(yè)請求事件;
      [0008]根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理所述作業(yè)請求事件;
      [0009]采用選擇的調(diào)度器調(diào)度資源。
      [0010]本發(fā)明實施例的一些有益效果可以包括:
      [0011]該方法根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理新來的作業(yè)請求事件,調(diào)度方法能夠隨負(fù)載狀況及時變化,能夠充分利用系統(tǒng)資源,使系統(tǒng)資源實時處于最佳調(diào)度狀態(tài)。
      [0012]在一個實施例中,所述調(diào)度器為Hadoop的調(diào)度器。
      [0013]在一個實施例中,所述根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,采用與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理所述作業(yè)請求事件,包括:
      [0014]判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值;
      [0015]若當(dāng)前系統(tǒng)負(fù)載未達到所述負(fù)載均衡閾值,則采用先進先出調(diào)度器FIFO處理所述作業(yè)請求事件。
      [0016]該實施例中,當(dāng)系統(tǒng)處于低負(fù)載時,即系統(tǒng)中的空閑資源數(shù)量大于等待執(zhí)行的任務(wù)所需要的資源數(shù)量時,選擇FIFO調(diào)度器,調(diào)度簡單,不會產(chǎn)生過度的資源消耗,能夠使系統(tǒng)有較好的性能。
      [0017]在一個實施例中,所述判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值之后,還包括:
      [0018]若當(dāng)前系統(tǒng)負(fù)載達到所述負(fù)載均衡閾值,則判斷所述作業(yè)請求事件是否有優(yōu)先級需求;
      [0019]若所述作業(yè)請求事件有優(yōu)先級需求,則采用計算能力調(diào)度器Capacity Scheduler處理所述作業(yè)請求事件。
      [0020]該實施例中,當(dāng)系統(tǒng)達到負(fù)載均衡狀態(tài),但還沒到負(fù)載峰值時,若仍舊使用FIFO對于作業(yè)請求的執(zhí)行效率已經(jīng)不能滿足要求,此時檢測所述作業(yè)請求事件是否有優(yōu)先級的需求,若有則選擇Capacity Schedule處理所述作業(yè)請求事件,使用戶提交的作業(yè)請求事件在可接受的時間范圍內(nèi)就能夠得到響應(yīng),相對于該種負(fù)載情況下使用FIFO進行調(diào)度,系統(tǒng)性能更高,且能使高優(yōu)先級的作業(yè)請求得到優(yōu)先執(zhí)行。
      [0021]在一個實施例中,所述判斷所述作業(yè)請求事件是否有優(yōu)先級需求之后,還包括:
      [0022]若所述作業(yè)請求事件沒有優(yōu)先級需求,則采用公平調(diào)度器Fair Scheduler處理所述作業(yè)請求事件。
      [0023]該實施例中,當(dāng)系統(tǒng)達到負(fù)載均衡狀態(tài),但還沒到負(fù)載峰值時,若仍舊使用FIFO對于作業(yè)請求的執(zhí)行效率已經(jīng)不能滿足要求,此時檢測所述作業(yè)請求事件是否有優(yōu)先級的需求,若沒有則選擇Fair Scheduler處理所述作業(yè)請求事件,使用戶提交的作業(yè)請求事件在可接受的時間范圍內(nèi)就能夠得到響應(yīng),相對于該種負(fù)載情況下使用FIFO進行調(diào)度,系統(tǒng)性能更高,公平性也能夠得到一定的保證。
      [0024]在一個實施例中,所述采用計算能力調(diào)度器Capacity Scheduler處理所述作業(yè)請求事件,包括:根據(jù)所述作業(yè)請求事件的優(yōu)先級,采用所述Capac ity ScheduI er將所述作業(yè)請求事件劃分到屬于Capacity Scheduler的相應(yīng)優(yōu)先級隊列中;
      [0025]所述采用選擇的調(diào)度器調(diào)度資源,包括:
      [0026]判斷當(dāng)前是否還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列;
      [0027]若當(dāng)前還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列,則繼續(xù)采用FIFO為所述屬于FIFO的作業(yè)事件隊列調(diào)度資源直至其執(zhí)行完畢,隨后采用所述Capacity Scheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列調(diào)度資源;
      [0028]若當(dāng)前沒有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列,則直接采用所述CapacityScheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列調(diào)度資源。
      [0029]該實施例中,當(dāng)需要采用CapacityScheduler進行調(diào)度時,需要將在先的未執(zhí)行完的屬于FIFO的作業(yè)事件隊列執(zhí)行完后才用Capacity ScheduIer為屬于CapacityScheduler的多個優(yōu)先級隊列調(diào)度資源,避免由于執(zhí)行后來的具有優(yōu)先級的作業(yè)事件請求而導(dǎo)致在先的屬于FIFO的作業(yè)事件隊列久久得不到執(zhí)行的情況發(fā)生。
      [°03°] 在一個實施例中,所述采用公平調(diào)度器Fair Scheduler處理所述作業(yè)請求事件,包括:根據(jù)所述作業(yè)請求事件的事件屬性,采用所述Fair Scheduler將所述作業(yè)請求事件劃分到屬于Fair Scheduler的相應(yīng)資源池中;
      [0031]所述采用選擇的調(diào)度器調(diào)度資源,包括:
      [0032]判斷當(dāng)前是否還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列或?qū)儆贑apacityScheduler的優(yōu)先級隊列;
      [0033]若當(dāng)前還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列或?qū)儆贑apacityScheduler的優(yōu)先級隊列,則繼續(xù)采用FIFO為所述屬于FIFO的作業(yè)事件隊列調(diào)度資源直至其執(zhí)行完畢,或繼續(xù)采用Capacity Scheduler為屬于Capacity Scheduler的優(yōu)先級隊列調(diào)度資源直至其執(zhí)行完畢,隨后采用所述Fair Scheduler為屬于Fair Scheduler的多個資源池調(diào)度資源;
      [0034]若當(dāng)前沒有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列及屬于Capacity Scheduler的優(yōu)先級隊列,則采用所述Fair Scheduler為屬于Fair Scheduler的多個資源池調(diào)度資源。
      [0035]該實施例中,當(dāng)系統(tǒng)負(fù)載均衡時,需要將調(diào)度器切換到FairScheduler時,若當(dāng)前還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列或?qū)儆贑apacity Scheduler的優(yōu)先級隊列,則將新來的沒有優(yōu)先級的作業(yè)請求事件分到屬于Fair Scheduler的相應(yīng)資源池中,并先把未執(zhí)行完的屬于FIFO的作業(yè)事件隊列或?qū)儆贑apacity Scheduler的優(yōu)先級隊列執(zhí)行完后再采用Fair Scheduler進行資源調(diào)度。能夠保證在低負(fù)載時接收的屬于FIFO的作業(yè)事件隊列先執(zhí)行,或者具有優(yōu)先級的Capacity Scheduler的優(yōu)先級隊列先執(zhí)行。
      [0036]本發(fā)明提供一種事件調(diào)度裝置,包括:
      [0037]負(fù)載監(jiān)控模塊,用于實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況,并將當(dāng)前系統(tǒng)負(fù)載狀況提供給選擇分配模塊;
      [0038]接收模塊,用于接收作業(yè)請求事件,并將接收的所述作業(yè)請求事件發(fā)送給選擇分配模塊;
      [0039]選擇分配模塊,用于根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理所述作業(yè)請求事件,并將選擇的調(diào)度器信息發(fā)送給調(diào)度模塊;
      [0040]調(diào)度模塊,用于根據(jù)收到的選擇的調(diào)度器信息,采用所述選擇的調(diào)度器調(diào)度資源。[0041 ]在一個實施例中,所述選擇分配模塊包括:
      [0042]第一判斷單元,用于判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值,是則向第二判斷單元發(fā)送優(yōu)選級判斷指令,否則選擇先進先出調(diào)度器FIFO并發(fā)送給處理單元;
      [0043]第二判斷單元,用于根據(jù)收到的優(yōu)先級判斷指令,判斷收到的所述作業(yè)請求事件是否有優(yōu)先級需求,是則選擇計算能力調(diào)度器Capacity Scheduler并發(fā)送給處理單元,否則選擇公平調(diào)度器Fair Scheduler并發(fā)送給處理單元;
      [0044]處理單元,用于采用收到的調(diào)度器將所述作業(yè)請求事件劃分到屬于相應(yīng)調(diào)度器的隊列或資源池中,并向所述調(diào)度模塊發(fā)送最近一次收到的選擇的調(diào)度器信息。
      [0045]在一個實施例中,所述調(diào)度模塊包括:
      [0046]識別單元,用于識別收到的所述選擇的調(diào)度器信息所指的調(diào)度器類型,當(dāng)選擇的調(diào)度器為FIFO時,向執(zhí)行單元發(fā)送第一執(zhí)行指令;當(dāng)選擇的調(diào)度器為Capacity Scheduler時,向執(zhí)行單元發(fā)送第二執(zhí)行指令;當(dāng)選擇的調(diào)度器為Fair Scheduler時,向執(zhí)行單元發(fā)送第三執(zhí)行指令;
      [0047]執(zhí)行單元,用于根據(jù)收到的第一執(zhí)行指令,采用FIFO調(diào)度資源;還用于根據(jù)收到的第二執(zhí)行指令,先采用FIFO為未執(zhí)行完的屬于FIFO的作業(yè)事件隊列調(diào)度資源,執(zhí)行完后采用Capacity Scheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列調(diào)度資源;還用于根據(jù)收到的第三執(zhí)行指令,先采用FIFO/Capacity Scheduler將未執(zhí)行完的屬于FIFO的作業(yè)事件隊列/屬于Capacity ScheduIer的優(yōu)先級隊列調(diào)度資源,執(zhí)行完后采用FairScheduler為屬于Fair Scheduler的多個資源池調(diào)度資源。
      [0048]本發(fā)明實施例提供的事件調(diào)度裝置根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理新來的作業(yè)請求事件,采用的調(diào)度器能夠隨負(fù)載狀況及時變化,能夠充分利用系統(tǒng)資源,使系統(tǒng)資源實時處于最佳調(diào)度狀態(tài)。
      [0049]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
      [0050]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細(xì)描述。
      【附圖說明】
      [0051]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
      [0052]圖1為本發(fā)明實施例中一種事件調(diào)度方法的流程圖;
      [0053]圖2為本發(fā)明實施例一中一種事件調(diào)度方法的流程圖;
      [0054]圖3為本發(fā)明實施例中一種事件調(diào)度裝置的結(jié)構(gòu)框圖;
      [0055]圖4為本發(fā)明實施例中另一種事件調(diào)度裝置的結(jié)構(gòu)框圖;
      [0056]圖5為本發(fā)明實施例中另一種事件調(diào)度裝置的結(jié)構(gòu)框圖。
      【具體實施方式】
      [0057]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
      [0058]圖1為本發(fā)明中一種事件調(diào)度方法的流程圖。如圖1所示,該方法包括以下步驟S101-S104:
      [0059]步驟SlOl:實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況。
      [0060]步驟S102:接收作業(yè)請求事件。
      [0061]步驟S103:根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理作業(yè)請求事件。
      [0062]步驟S104:采用選擇的調(diào)度器調(diào)度資源。
      [0063]本發(fā)明實施例提供的方法根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理新來的作業(yè)請求事件,調(diào)度方法能夠隨負(fù)載狀況及時變化,能夠充分利用系統(tǒng)資源,使系統(tǒng)資源實時處于最佳調(diào)度狀態(tài)。
      [0064]隨著MapReduce的流行,其開源實現(xiàn)Hadoop也變得越來越受推崇。在Hadoop系統(tǒng)中,調(diào)度器的作用是將系統(tǒng)中空閑的資源按一定策略分配給作業(yè),Hadoop中常見的調(diào)度器有以下三種:
      [0065](I)先入先出調(diào)度器FIF0:HadOOp中默認(rèn)的調(diào)度器,它先按照作業(yè)到達時間的先后選擇被執(zhí)行的作業(yè)。該調(diào)度器實現(xiàn)簡單,調(diào)度開銷較小,只有一個Job隊列,簡單、易于實現(xiàn)。但它只是在系統(tǒng)低負(fù)載的情況下,有較好的性能。由于FIFO沒考慮Job的優(yōu)先級,所以到達較晚的Job在系統(tǒng)高負(fù)載的情況下將會遲遲得不到響應(yīng),S卩,系統(tǒng)負(fù)載增加會導(dǎo)致FIFO算法性能快速衰減。
      [ΟΟ??] (2)計算能力調(diào)度器Capacity Scheduler:支持多個隊列,每個隊列可配置一定的資源量,每個隊列采用FIFO調(diào)度策略,為了防止同一個用戶的作業(yè)獨占隊列中的資源,該調(diào)度器會對同一用戶提交的作業(yè)所占資源量進行限定。調(diào)度時,首先按以下策略選擇一個合適隊列:計算每個隊列中正在運行的任務(wù)數(shù)與其應(yīng)該分得的計算資源之間的比值,選擇一個該比值最小的隊列;然后按以下策略選擇該隊列中一個作業(yè):按照作業(yè)優(yōu)先級和提交時間順序選擇,同時考慮用戶資源量限制和內(nèi)存限制cXapacity Scheduler是以隊列為單位組織分配的,這些隊列的優(yōu)先級是可以調(diào)整的。因此,可以通過判斷Job的優(yōu)先級,使高優(yōu)先級的job所在的隊列得到優(yōu)先執(zhí)行。
      [0067](3)公平調(diào)度器Fair Scheduler:同計算能力調(diào)度器類似,支持多隊列多用戶,每個隊列中的資源量可以配置,同一隊列中的作業(yè)公平共享隊列中所有資源。在系統(tǒng)負(fù)載較高的情況下,F(xiàn)air Scheduler能夠保證用戶在提交Job后,在可接受的時間范圍內(nèi)就能夠得到響應(yīng),性能要高于FIFO算法。但是系統(tǒng)負(fù)載較低的情況下,空閑資源較多,此時即使使用FIFO算法,公平性在一定程度上也會得到保證,而在這種情況下使用Fair Scheduler反而會因為其保證公平性的特性,而產(chǎn)生過度的調(diào)度消耗。
      [0068]優(yōu)選地,本發(fā)明實施例提供的事件調(diào)度方法中,步驟S103中采用Hadoop的調(diào)度器如FIF0、Capacity Scheduler、Fair Scheduler等,根據(jù)系統(tǒng)負(fù)載狀況和各種調(diào)度器的特點,根據(jù)當(dāng)前系統(tǒng)負(fù)載情況選用最適用的調(diào)度器。當(dāng)然,可以采用類似的思路選用除Hadoop的調(diào)度器外的其他現(xiàn)有調(diào)度器也是完全可行的。
      [0069]優(yōu)選地,若本發(fā)明提供的方法根據(jù)系統(tǒng)負(fù)載情況選用Hadoop的不同調(diào)度器進行切換,則步驟SlOl中對系統(tǒng)的負(fù)載進行檢測與計算,然后根據(jù)檢測結(jié)果采用相應(yīng)的調(diào)度器(SP調(diào)度算法)。具體地,選擇方法為:當(dāng)有空閑資源請求任務(wù)執(zhí)行時,通過獲得實時的系統(tǒng)負(fù)載狀況,當(dāng)系統(tǒng)處于低負(fù)載時,即系統(tǒng)中的空閑資源數(shù)量大于等待執(zhí)行的任務(wù)所需要的資源數(shù)量時,選擇FIFO算;當(dāng)隨著系統(tǒng)的運行,系統(tǒng)負(fù)載會逐漸增加,達到負(fù)載均衡狀態(tài),但還沒到負(fù)載峰值,此時,F(xiàn)IFO對于Job的執(zhí)行效率已經(jīng)不能滿足要求,這時檢測該Job是否有優(yōu)先級的需求,若沒有則選擇Fair Scheduler,否則選擇Capacity Schedule。
      [0070]下面通過具體實施例來說明本發(fā)明實施例提供的事件調(diào)度方法。
      [0071 ] 實施例一
      [0072]圖2為本發(fā)明實施例一中一種事件調(diào)度方法的流程圖。如圖2所示,包括以下步驟S201-S204:
      [0073]步驟S201:實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況。
      [0074]步驟S202:接收作業(yè)請求事件。
      [0075]步驟S203:判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值,是則執(zhí)行步驟S205,否則執(zhí)行步驟S204。
      [0076]步驟S204:采用先進先出調(diào)度器FIFO處理作業(yè)請求事件,隨后執(zhí)行步驟S208。
      [0077]此步驟中,當(dāng)系統(tǒng)處于低負(fù)載時,將當(dāng)前作業(yè)請求事件排到已有的屬于FIFO的作業(yè)事件隊列中,選擇FIFO調(diào)度器進行資源調(diào)度,調(diào)度簡單,不會產(chǎn)生過度的資源消耗,能夠使系統(tǒng)有較好的性能。
      [0078]步驟S205:判斷作業(yè)請求事件是否有優(yōu)先級需求,是則執(zhí)行步驟S206,否則執(zhí)行步驟S207。
      [0079]步驟S206:采用計算能力調(diào)度器Capacity Scheduler處理作業(yè)請求事件,隨后執(zhí)行步驟S208。
      [OO8O] 其中,根據(jù)當(dāng)前作業(yè)請求事件的優(yōu)先級,采用Capacity Scheduler將該作業(yè)請求事件劃分到屬于Capacity Scheduler的相應(yīng)優(yōu)先級隊列中,使用Capacity Schedule處理作業(yè)請求事件,使用戶提交的作業(yè)請求事件在可接受的時間范圍內(nèi)就能夠得到響應(yīng),相對于該種負(fù)載情況下使用FIFO進行調(diào)度,系統(tǒng)性能更高,且能使高優(yōu)先級的作業(yè)請求得到優(yōu)先執(zhí)行。
      [0081 ] 步驟S207:采用公平調(diào)度器Fair Scheduler處理作業(yè)請求事件,隨后執(zhí)行步驟S208o
      [0082]其中,根據(jù)作業(yè)請求事件的事件屬性,采用FairScheduler將作業(yè)請求事件劃分到屬于Fair Scheduler的相應(yīng)資源池中,選擇Fair Scheduler處理作業(yè)請求事件,使用戶提交的作業(yè)請求事件在可接受的時間范圍內(nèi)就能夠得到響應(yīng),相對于該種負(fù)載情況下使用FIFO進行調(diào)度,系統(tǒng)性能更高,公平性也能夠得到一定的保證。
      [0083]步驟S208:采用選擇的調(diào)度器調(diào)度資源。
      [0084]此步驟S208中,根據(jù)上一步驟選擇的調(diào)度器不同,分幾種情況:
      [0085](I)上一步驟選擇的調(diào)度器是FIFO
      [0086]—般情況下,系統(tǒng)在開始運行的前期負(fù)載會比較小,隨著系統(tǒng)的運行,負(fù)載會慢慢增大,因此,選擇使用FIFO基本是在系統(tǒng)開始運行的前期,此種情況下不會有未執(zhí)行完的屬于Capacity Scheduler的優(yōu)先級隊列或未執(zhí)行完的屬于Fair Scheduler的資源池,此步驟中直接采用FIFO算法為采用FIFO處理所得的單一隊列進行資源調(diào)度即可。當(dāng)然,也可能出現(xiàn)在系統(tǒng)負(fù)載增大到滿足使用Capacity Scheduler或Fair Scheduler后,沒有收到太多新的作業(yè)請求事件,系統(tǒng)負(fù)載慢慢下降至預(yù)先設(shè)定的負(fù)載均衡閾值下的情況,在此種情況下,采用FIFO進行資源調(diào)度時,需要先將之前未執(zhí)行完的屬于Capacity Scheduler的優(yōu)先級隊列或未執(zhí)行完的屬于Fair Scheduler的資源池中的作業(yè)請求時間執(zhí)行完后,再采用FIFO進行資源調(diào)度。
      [0087](2)上一步驟選擇的調(diào)度器是Capacity Scheduler
      [0088]當(dāng)系統(tǒng)負(fù)載增大到負(fù)載均衡狀態(tài)時,若當(dāng)前接收的作業(yè)請求事件具有優(yōu)先級需求,貝lJ此步驟中采用Capacity Scheduler調(diào)度資源,但是,在采用Capacity Scheduler調(diào)度資源之前,需要先將之前未執(zhí)行完的屬于FIFO的作業(yè)事件隊列采用FIFO算法執(zhí)行完畢后,再采用Capacity Scheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列(即步驟S206中采用Capacity Scheduler劃分新來的作業(yè)請求事件得到的多個優(yōu)先級隊列)調(diào)度資源,避免由于執(zhí)行后來的具有優(yōu)先級的作業(yè)事件請求而導(dǎo)致在先的屬于FIFO的作業(yè)事件隊列久久得不到執(zhí)行的情況發(fā)生。
      [0089](3)上一步驟選擇的調(diào)度器是Fair Scheduler
      [0090]當(dāng)系統(tǒng)負(fù)載增大到負(fù)載均衡狀態(tài)時,若當(dāng)前接收的作業(yè)請求事件不具有優(yōu)先級需求,貝lJ此步驟中采用Fair Scheduler調(diào)度資源。但是,在采用Fair Scheduler調(diào)度資源之前,需要先將之前未執(zhí)行完的屬于FIFO的作業(yè)事件隊列或?qū)儆贑apacity Scheduler的優(yōu)先級隊列采用相應(yīng)的調(diào)度器執(zhí)行完畢后,再采用Fair Scheduler為屬于Fair Scheduler的多個資源池(即步驟S207中采用Fair Scheduler劃分新來的作業(yè)請求事件得到的多個資源池)調(diào)度資源。能夠保證在低負(fù)載時接收的屬于FIFO的作業(yè)事件隊列先執(zhí)行,或者具有優(yōu)先級的Capacity Scheduler的優(yōu)先級隊列先執(zhí)行。
      [0091]本發(fā)明實施例一提供的方法根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的Hadoop調(diào)度器處理新來的作業(yè)請求事件,調(diào)度方法能夠隨負(fù)載狀況及時變化,能夠充分利用系統(tǒng)資源,使系統(tǒng)資源實時處于最佳調(diào)度狀態(tài)。
      [0092]對應(yīng)于上述實施例提供的一種用于服務(wù)器的播放視頻的方法,本發(fā)明實施例還提供一種事件調(diào)度裝置,如圖3所示,該裝置包括負(fù)載監(jiān)控模塊31、接收模塊32、選擇分配模塊33和調(diào)度模塊34,其中,
      [0093]負(fù)載監(jiān)控模塊31,用于實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況,并將當(dāng)前系統(tǒng)負(fù)載狀況提供給選擇分配模塊33;
      [0094]接收模塊32,用于接收作業(yè)請求事件,并將接收的作業(yè)請求事件發(fā)送給選擇分配模塊33;
      [0095]選擇分配模塊33,用于根據(jù)負(fù)載監(jiān)控模塊31提供的當(dāng)前系統(tǒng)負(fù)載狀況,選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理接收模塊32發(fā)來的作業(yè)請求事件,并將選擇的調(diào)度器信息發(fā)送給調(diào)度模塊34;
      [0096]調(diào)度模塊34,用于根據(jù)收到的選擇的調(diào)度器信息,采用選擇的調(diào)度器調(diào)度資源。
      [0097]在一個實施例中,如圖4所示,選擇分配模塊33包括:
      [0098]第一判斷單元331,用于判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值,是則向第二判斷單元332發(fā)送優(yōu)選級判斷指令,否則選擇先進先出調(diào)度器FIFO并發(fā)送給處理單元333;
      [0099]第二判斷單元332,用于根據(jù)收到的優(yōu)先級判斷指令,判斷收到的作業(yè)請求事件是否有優(yōu)先級需求,是則選擇計算能力調(diào)度器Capacity Scheduler并發(fā)送給處理單元333,否則選擇公平調(diào)度器Fair Scheduler并發(fā)送給處理單元333 ;
      [0100]處理單元333,用于采用收到的調(diào)度器將作業(yè)請求事件劃分到屬于相應(yīng)調(diào)度器的隊列或資源池中,并向調(diào)度模塊34發(fā)送最近一次收到的選擇的調(diào)度器信息。
      [0101]在一個實施例中,在圖4所示裝置的基礎(chǔ)上,如圖5所示,調(diào)度模塊34包括:
      [0102]識別單元341,用于識別收到的選擇的調(diào)度器信息所指的調(diào)度器類型,當(dāng)選擇的調(diào)度器為FIFO時,向執(zhí)行單元342發(fā)送第一執(zhí)行指令;當(dāng)選擇的調(diào)度器為Capacity Scheduler時,向執(zhí)行單元發(fā)342送第二執(zhí)行指令;當(dāng)選擇的調(diào)度器為Fair Scheduler時,向執(zhí)行單元342發(fā)送第三執(zhí)行指令;
      [0103]執(zhí)行單元342,用于根據(jù)收到的第一執(zhí)行指令,采用FIFO調(diào)度資源;還用于根據(jù)收到的第二執(zhí)行指令,先采用FIFO為未執(zhí)行完的屬于FIFO的作業(yè)事件隊列調(diào)度資源,執(zhí)行完后采用Capacity Scheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列調(diào)度資源;還用于根據(jù)收到的第三執(zhí)行指令,先采用FIFO/Capacity Scheduler將未執(zhí)行完的屬于FIFO的作業(yè)事件隊列/屬于Capacity Scheduler的優(yōu)先級隊列調(diào)度資源,執(zhí)行完后采用FairScheduler為屬于Fair Scheduler的多個資源池調(diào)度資源。
      [0104]本發(fā)明實施例提供的事件調(diào)度裝置根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理新來的作業(yè)請求事件,采用的調(diào)度器能夠隨負(fù)載狀況及時變化,能夠充分利用系統(tǒng)資源,使系統(tǒng)資源實時處于最佳調(diào)度狀態(tài)。
      [0105]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
      [0106]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
      [0107]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
      [0108]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
      [0109]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
      【主權(quán)項】
      1.一種事件調(diào)度方法,其特征在于,包括: 實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況; 接收作業(yè)請求事件; 根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理所述作業(yè)請求事件; 采用選擇的調(diào)度器調(diào)度資源。2.如權(quán)利要求1所述的事件調(diào)度方法,其特征在于,所述調(diào)度器為Hadoop的調(diào)度器。3.如權(quán)利要求2所述的事件調(diào)度方法,其特征在于,所述根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,采用與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理所述作業(yè)請求事件,包括: 判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值; 若當(dāng)前系統(tǒng)負(fù)載未達到所述負(fù)載均衡閾值,則采用先進先出調(diào)度器FIFO處理所述作業(yè)請求事件。4.如權(quán)利要求3所述的事件調(diào)度方法,其特征在于,所述判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值之后,還包括: 若當(dāng)前系統(tǒng)負(fù)載達到所述負(fù)載均衡閾值,則判斷所述作業(yè)請求事件是否有優(yōu)先級需求; 若所述作業(yè)請求事件有優(yōu)先級需求,則采用計算能力調(diào)度器Capacity Scheduler處理所述作業(yè)請求事件。5.如權(quán)利要求4所述的事件調(diào)度方法,其特征在于,所述判斷所述作業(yè)請求事件是否有優(yōu)先級需求之后,還包括: 若所述作業(yè)請求事件沒有優(yōu)先級需求,則采用公平調(diào)度器Fair Scheduler處理所述作業(yè)請求事件。6.如權(quán)利要求5所述的事件調(diào)度方法,其特征在于,所述采用計算能力調(diào)度器Capaci tyScheduler處理所述作業(yè)請求事件,包括:根據(jù)所述作業(yè)請求事件的優(yōu)先級,采用所述Capacity Scheduler將所述作業(yè)請求事件劃分到屬于Capacity Scheduler的相應(yīng)優(yōu)先級隊列中; 所述采用選擇的調(diào)度器調(diào)度資源,包括: 判斷當(dāng)前是否還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列; 若當(dāng)前還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列,則繼續(xù)采用FIFO為所述屬于FIFO的作業(yè)事件隊列調(diào)度資源直至其執(zhí)行完畢,隨后采用所述Capacity Scheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列調(diào)度資源; 若當(dāng)前沒有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列,則直接采用所述CapacityScheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列調(diào)度資源。7.如權(quán)利要求6所述的事件調(diào)度方法,其特征在于,所述采用公平調(diào)度器FairScheduler處理所述作業(yè)請求事件,包括:根據(jù)所述作業(yè)請求事件的事件屬性,采用所述Fair Scheduler將所述作業(yè)請求事件劃分到屬于Fair Scheduler的相應(yīng)資源池中; 所述采用選擇的調(diào)度器調(diào)度資源,包括: 判斷當(dāng)前是否還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列或?qū)儆贑apacity Scheduler的優(yōu)先級隊列; 若當(dāng)前還有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列或?qū)儆贑apacity Scheduler的優(yōu)先級隊列,則繼續(xù)采用FIFO為所述屬于FIFO的作業(yè)事件隊列調(diào)度資源直至其執(zhí)行完畢,或繼續(xù)采用Capacity Scheduler為屬于Capacity Scheduler的優(yōu)先級隊列調(diào)度資源直至其執(zhí)行完畢,隨后采用所述Fair Scheduler為屬于Fair Scheduler的多個資源池調(diào)度資源; 若當(dāng)前沒有未執(zhí)行完的屬于FIFO的作業(yè)事件隊列及屬于Capacity Scheduler的優(yōu)先級隊列,則采用所述Fair Scheduler為屬于Fair Scheduler的多個資源池調(diào)度資源。8.一種事件調(diào)度裝置,其特征在于,包括: 負(fù)載監(jiān)控模塊,用于實時監(jiān)控當(dāng)前系統(tǒng)負(fù)載狀況,并將當(dāng)前系統(tǒng)負(fù)載狀況提供給選擇分配模塊; 接收模塊,用于接收作業(yè)請求事件,并將接收的所述作業(yè)請求事件發(fā)送給選擇分配模塊; 選擇分配模塊,用于根據(jù)當(dāng)前系統(tǒng)負(fù)載狀況,選擇與當(dāng)前系統(tǒng)負(fù)載狀況相應(yīng)的調(diào)度器處理所述作業(yè)請求事件,并將選擇的調(diào)度器信息發(fā)送給調(diào)度模塊; 調(diào)度模塊,用于根據(jù)收到的選擇的調(diào)度器信息,采用所述選擇的調(diào)度器調(diào)度資源。9.如權(quán)利要求8所述的事件調(diào)度裝置,其特征在于,所述選擇分配模塊包括: 第一判斷單元,用于判斷當(dāng)前系統(tǒng)負(fù)載是否達到預(yù)先設(shè)定的負(fù)載均衡閾值,是則向第二判斷單元發(fā)送優(yōu)選級判斷指令,否則選擇先進先出調(diào)度器FIFO并發(fā)送給處理單元; 第二判斷單元,用于根據(jù)收到的優(yōu)先級判斷指令,判斷收到的所述作業(yè)請求事件是否有優(yōu)先級需求,是則選擇計算能力調(diào)度器Capacity Scheduler并發(fā)送給處理單元,否則選擇公平調(diào)度器Fair Scheduler并發(fā)送給處理單元; 處理單元,用于采用收到的調(diào)度器將所述作業(yè)請求事件劃分到屬于相應(yīng)調(diào)度器的隊列或資源池中,并向所述調(diào)度模塊發(fā)送最近一次收到的選擇的調(diào)度器信息。10.如權(quán)利要求9所述的事件調(diào)度裝置,其特征在于,所述調(diào)度模塊包括: 識別單元,用于識別收到的所述選擇的調(diào)度器信息所指的調(diào)度器類型,當(dāng)選擇的調(diào)度器為FIFO時,向執(zhí)行單元發(fā)送第一執(zhí)行指令;當(dāng)選擇的調(diào)度器為Capacity Scheduler時,向執(zhí)行單元發(fā)送第二執(zhí)行指令;當(dāng)選擇的調(diào)度器為Fair Scheduler時,向執(zhí)行單元發(fā)送第三執(zhí)行指令; 執(zhí)行單元,用于根據(jù)收到的第一執(zhí)行指令,采用FIFO調(diào)度資源;還用于根據(jù)收到的第二執(zhí)行指令,先采用FIFO為未執(zhí)行完的屬于FIFO的作業(yè)事件隊列調(diào)度資源,執(zhí)行完后采用Capacity Scheduler為屬于Capacity Scheduler的多個優(yōu)先級隊列調(diào)度資源;還用于根據(jù)收到的第三執(zhí)行指令,先采用FIFO/Capacity Scheduler將未執(zhí)行完的屬于FIFO的作業(yè)事件隊列/屬于Capacity Scheduler的優(yōu)先級隊列調(diào)度資源,執(zhí)行完后采用Fair Scheduler為屬于Fair Scheduler的多個資源池調(diào)度資源。
      【文檔編號】G06F9/50GK105955816SQ201610237247
      【公開日】2016年9月21日
      【申請日】2016年4月15日
      【發(fā)明人】周鳴愛
      【申請人】天脈聚源(北京)傳媒科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1