本發(fā)明涉及調(diào)度控制領(lǐng)域,尤其涉及一種數(shù)據(jù)調(diào)度處理方法及裝置。
背景技術(shù):
apachespark是一個(gè)快速高效的集群計(jì)算系統(tǒng),spark很好地利用了hadoop和mesos的基礎(chǔ)設(shè)施,借hadoop之勢(shì)與hadoop無縫結(jié)合,但是相比于hadoopmapreduce具有更高的計(jì)算速度,同時(shí)spark支持內(nèi)存計(jì)算、多迭代批量處理、即席查詢、流處理和圖計(jì)算等多種范式。對(duì)spark/hadoop這樣的大數(shù)據(jù)系統(tǒng)來講,數(shù)據(jù)量大并不可怕,可怕的是數(shù)據(jù)傾斜;數(shù)據(jù)傾斜指的是,并行處理的數(shù)據(jù)集中,某一部分的數(shù)據(jù)顯著多于其它部分,從而使得該部分的處理速度成為整個(gè)數(shù)據(jù)集處理的瓶頸。
如圖1所示,數(shù)據(jù)集并行處理過程中,將各個(gè)節(jié)點(diǎn)關(guān)鍵字key相同的待處理數(shù)據(jù)分配至對(duì)應(yīng)的調(diào)度任務(wù)task來進(jìn)行處理,例如:關(guān)鍵字key1對(duì)應(yīng)的待處理數(shù)據(jù)由調(diào)度任務(wù)task1進(jìn)行處理;關(guān)鍵字key2對(duì)應(yīng)的待處理數(shù)據(jù)由調(diào)度任務(wù)task2進(jìn)行處理;關(guān)鍵字key3對(duì)應(yīng)的待處理數(shù)據(jù)由調(diào)度任務(wù)task3進(jìn)行處理。
但是,上述技術(shù)方案中,如果調(diào)度任務(wù)task中,key對(duì)應(yīng)的待處理數(shù)據(jù)量特別大,則所述task運(yùn)行很慢,使得該部分的處理速度成為整個(gè)數(shù)據(jù)集處理的瓶頸,因而會(huì)導(dǎo)致整個(gè)系統(tǒng)性能降低或拋出異常。
因此,迫切需要提供一種數(shù)據(jù)調(diào)度處理方法來解決上述技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)調(diào)度處理方法及裝置,以解決上述問題。
本發(fā)明提供一種數(shù)據(jù)調(diào)度處理方法,包括以下步驟:根據(jù)待處理數(shù)據(jù)的關(guān)鍵字信息,將待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元;
若所述任務(wù)調(diào)度處理單元所分配的待處理數(shù)據(jù)大于或等于預(yù)設(shè)值,則根據(jù)單個(gè)任務(wù)調(diào)度處理單元所處理的數(shù)據(jù)量、待處理數(shù)據(jù)總量,獲取任務(wù)調(diào)度處理單元的調(diào)度信息,其中,所述調(diào)度信息包括以下至少之一:任務(wù)調(diào)度處理單元名稱、任務(wù)調(diào)度處理單元數(shù)目、任務(wù)調(diào)度處理單元二次分配的待處理數(shù)據(jù)量;
按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)。
本發(fā)明提供一種數(shù)據(jù)調(diào)度處理裝置,包括處理器,適于實(shí)現(xiàn)各指令;存儲(chǔ)設(shè)備,適于存儲(chǔ)多條指令,所述指令適于由所述處理器加載并執(zhí)行;
根據(jù)待處理數(shù)據(jù)的關(guān)鍵字信息,將待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元;
若所述任務(wù)調(diào)度處理單元所分配的待處理數(shù)據(jù)大于或等于預(yù)設(shè)值,則根據(jù)單個(gè)任務(wù)調(diào)度處理單元所處理的數(shù)據(jù)量、待處理數(shù)據(jù)總量,獲取任務(wù)調(diào)度處理單元的調(diào)度信息,其中,所述調(diào)度信息包括以下至少之一:任務(wù)調(diào)度處理單元名稱、任務(wù)調(diào)度處理單元數(shù)目、任務(wù)調(diào)度處理單元二次分配的待處理數(shù)據(jù)量;
按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)。
本發(fā)明提供一種數(shù)據(jù)調(diào)度處理裝置,包括參數(shù)配置模塊、調(diào)度模塊、數(shù)據(jù)分割記錄模塊、匯總模塊;其中,所述參數(shù)配置模塊與所述調(diào)度模塊相連;所述調(diào)度模塊分別與所述數(shù)據(jù)分割記錄模塊、所述匯總模塊相連;所述數(shù)據(jù)分割記錄模塊與所述匯總模塊相連。
本發(fā)明實(shí)施例提供以下技術(shù)方案:根據(jù)待處理數(shù)據(jù)的關(guān)鍵字信息,將待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元;若所述任務(wù)調(diào)度處理單元所分配的待處理數(shù)據(jù)大于或等于預(yù)設(shè)值,則根據(jù)單個(gè)任務(wù)調(diào)度處理單元所處理的數(shù)據(jù)量、待處理數(shù)據(jù)總量,獲取任務(wù)調(diào)度處理單元的調(diào)度信息,其中,所述調(diào)度信息包括以下至少之一:任務(wù)調(diào)度處理單元名稱、任務(wù)調(diào)度處理單元數(shù)目、任務(wù)調(diào)度處理單元二次分配的待處理數(shù)據(jù)量;按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)。
上述技術(shù)方案中,通過將相同關(guān)鍵字下的大數(shù)據(jù)量數(shù)據(jù)平行分割成多個(gè)任務(wù)調(diào)度處理單元進(jìn)行處理,避免因?yàn)槟硞€(gè)任務(wù)調(diào)度處理單元處理的數(shù)據(jù)量過大而導(dǎo)致整個(gè)spark系統(tǒng)性能降低。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1所示為現(xiàn)有技術(shù)的數(shù)據(jù)集并行處理過程;
圖2所示為本發(fā)明實(shí)施例2的數(shù)據(jù)調(diào)度處理方法流程圖;
圖3所示為本發(fā)明實(shí)施例3的數(shù)據(jù)調(diào)度處理裝置結(jié)構(gòu)圖;
圖4所示為本發(fā)明實(shí)施例4的數(shù)據(jù)調(diào)度處理裝置結(jié)構(gòu)圖。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
本發(fā)明實(shí)施例的核心技術(shù)特點(diǎn)在于:
通過將相同關(guān)鍵字key下的大數(shù)據(jù)量數(shù)據(jù)平行分割成多個(gè)任務(wù)調(diào)度處理單元task處理,最后由一個(gè)task進(jìn)行結(jié)果匯總,避免因?yàn)槟硞€(gè)task處理的數(shù)據(jù)量過大而導(dǎo)致整個(gè)spark系統(tǒng)性能降低或者發(fā)生存溢出oom(outofmemory,oom)。
圖2所示為本發(fā)明實(shí)施例2的數(shù)據(jù)調(diào)度處理方法流程圖,包括以下步驟:
步驟201:根據(jù)待處理數(shù)據(jù)的關(guān)鍵字信息,將待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元;
進(jìn)一步地,將關(guān)鍵字相同的待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元,其中,關(guān)鍵字相同的待處理數(shù)據(jù)分布在一個(gè)或多個(gè)服務(wù)器。
步驟202:若所述任務(wù)調(diào)度處理單元所分配的待處理數(shù)據(jù)大于或等于預(yù)設(shè)值,則根據(jù)單個(gè)任務(wù)調(diào)度處理單元所處理的數(shù)據(jù)量、待處理數(shù)據(jù)總量,獲取任務(wù)調(diào)度處理單元的調(diào)度信息,其中,所述調(diào)度信息包括以下至少之一:任務(wù)調(diào)度處理單元名稱、任務(wù)調(diào)度處理單元數(shù)目、任務(wù)調(diào)度處理單元二次分配的待處理數(shù)據(jù)量;
步驟203:按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)。
進(jìn)一步地,對(duì)任務(wù)調(diào)度處理單元的調(diào)度信息進(jìn)行記錄,并建立關(guān)鍵字與任務(wù)調(diào)度處理單元的調(diào)度信息的對(duì)應(yīng)關(guān)系。
進(jìn)一步地,若任務(wù)調(diào)度處理單元對(duì)所述分配的待處理數(shù)據(jù)執(zhí)行完畢,則根據(jù)關(guān)鍵字與任務(wù)調(diào)度處理單元的調(diào)度信息的對(duì)應(yīng)關(guān)系,統(tǒng)計(jì)各個(gè)任務(wù)調(diào)度處理單元的處理結(jié)果并匯總輸出最終的執(zhí)行結(jié)果。
進(jìn)一步地,按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)的過程為:
調(diào)度處于空閑狀態(tài)的任務(wù)調(diào)度處理單元,對(duì)二次分配的待處理數(shù)據(jù)進(jìn)行處理。
圖3所示為本發(fā)明實(shí)施例3的數(shù)據(jù)調(diào)度處理裝置結(jié)構(gòu)圖,包括參數(shù)配置模塊、調(diào)度模塊、數(shù)據(jù)分割記錄模塊、匯總模塊;
其中,所述參數(shù)配置模塊與所述調(diào)度模塊相連;所述調(diào)度模塊分別與所述數(shù)據(jù)分割記錄模塊、所述匯總模塊相連;所述數(shù)據(jù)分割記錄模塊與所述匯總模塊相連。
所述參數(shù)配置模塊,用于在配置文件中增加平行數(shù)據(jù)量配置參數(shù)和平行task調(diào)度算法參數(shù);
所述調(diào)度模塊,用于從所述參數(shù)配置模塊中獲取平行數(shù)據(jù)量配置參數(shù)和平行調(diào)度算法參數(shù);還用于根據(jù)平行數(shù)據(jù)量配置參數(shù)、待處理數(shù)據(jù)總量,獲取任務(wù)調(diào)度處理單元的調(diào)度信息;還用于根據(jù)平行調(diào)度算法參數(shù),調(diào)度處于空閑狀態(tài)的任務(wù)調(diào)度處理單元,對(duì)二次分配的待處理數(shù)據(jù)進(jìn)行處理。
其中,所述調(diào)度信息包括以下至少之一:任務(wù)調(diào)度處理單元名稱、任務(wù)調(diào)度處理單元數(shù)目、任務(wù)調(diào)度處理單元二次分配的待處理數(shù)據(jù)量;所述平行數(shù)據(jù)量配置參數(shù),用于明確單個(gè)任務(wù)調(diào)度處理單元所處理的數(shù)據(jù)量。
所述數(shù)據(jù)分割記錄模塊,用于對(duì)所述調(diào)度模塊中的任務(wù)調(diào)度處理單元的調(diào)度信息進(jìn)行記錄,并建立關(guān)鍵字與任務(wù)調(diào)度處理單元的調(diào)度信息的對(duì)應(yīng)關(guān)系;
所述匯總模塊,用于從所述調(diào)度模塊中獲取各個(gè)任務(wù)調(diào)度處理單元的處理結(jié)果;還用于從所述數(shù)據(jù)分割記錄模塊中獲取關(guān)鍵字與任務(wù)調(diào)度處理單元的調(diào)度信息的對(duì)應(yīng)關(guān)系;還用于獲取同一關(guān)鍵字對(duì)應(yīng)的任務(wù)調(diào)度處理單元的最終的執(zhí)行結(jié)果。
圖4所示為本發(fā)明實(shí)施例4的數(shù)據(jù)調(diào)度處理裝置結(jié)構(gòu)圖,包括處理器,適于實(shí)現(xiàn)各指令;存儲(chǔ)設(shè)備,適于存儲(chǔ)多條指令,所述指令適于由所述處理器加載并執(zhí)行;
根據(jù)待處理數(shù)據(jù)的關(guān)鍵字信息,將待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元;
若所述任務(wù)調(diào)度處理單元所分配的待處理數(shù)據(jù)大于或等于預(yù)設(shè)值,則根據(jù)單個(gè)任務(wù)調(diào)度處理單元所處理的數(shù)據(jù)量、待處理數(shù)據(jù)總量,獲取任務(wù)調(diào)度處理單元的調(diào)度信息,其中,所述調(diào)度信息包括以下至少之一:任務(wù)調(diào)度處理單元名稱、任務(wù)調(diào)度處理單元數(shù)目、任務(wù)調(diào)度處理單元二次分配的待處理數(shù)據(jù)量;
按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)。
進(jìn)一步地,將關(guān)鍵字相同的待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元,其中,關(guān)鍵字相同的待處理數(shù)據(jù)分布在一個(gè)或多個(gè)服務(wù)器。
進(jìn)一步地,對(duì)于任務(wù)調(diào)度處理單元的調(diào)度信息進(jìn)行記錄,并建立關(guān)鍵字與任務(wù)調(diào)度處理單元的調(diào)度信息的對(duì)應(yīng)關(guān)系。
進(jìn)一步地,若任務(wù)調(diào)度處理單元對(duì)所述分配的待處理數(shù)據(jù)執(zhí)行完畢,則根據(jù)關(guān)鍵字與任務(wù)調(diào)度處理單元的調(diào)度信息的對(duì)應(yīng)關(guān)系,統(tǒng)計(jì)各個(gè)任務(wù)調(diào)度處理單元的處理結(jié)果并匯總輸出最終的執(zhí)行結(jié)果。
進(jìn)一步地,按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)的過程為:
調(diào)度處于空閑狀態(tài)的任務(wù)調(diào)度處理單元,對(duì)二次分配的待處理數(shù)據(jù)進(jìn)行處理。
本發(fā)明實(shí)施例提供以下技術(shù)方案:根據(jù)待處理數(shù)據(jù)的關(guān)鍵字信息,將待處理數(shù)據(jù)分配至對(duì)應(yīng)的任務(wù)調(diào)度處理單元;若所述任務(wù)調(diào)度處理單元所分配的待處理數(shù)據(jù)大于或等于預(yù)設(shè)值,則根據(jù)單個(gè)任務(wù)調(diào)度處理單元所處理的數(shù)據(jù)量、待處理數(shù)據(jù)總量,獲取任務(wù)調(diào)度處理單元的調(diào)度信息,其中,所述調(diào)度信息包括以下至少之一:任務(wù)調(diào)度處理單元名稱、任務(wù)調(diào)度處理單元數(shù)目、任務(wù)調(diào)度處理單元二次分配的待處理數(shù)據(jù)量;按照所述調(diào)度信息,對(duì)所述任務(wù)調(diào)度處理單元進(jìn)行調(diào)度,處理二次分配的待處理數(shù)據(jù)。
上述技術(shù)方案中,通過將相同關(guān)鍵字下的大數(shù)據(jù)量數(shù)據(jù)平行分割成多個(gè)任務(wù)調(diào)度處理單元進(jìn)行處理,避免因?yàn)槟硞€(gè)任務(wù)調(diào)度處理單元處理的數(shù)據(jù)量過大而導(dǎo)致整個(gè)spark系統(tǒng)性能降低。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。