本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種大數(shù)據(jù)的批處理方法、裝置電子設(shè)備、計(jì)算機(jī)可讀存儲介質(zhì)及計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
隨著數(shù)據(jù)量的大規(guī)模增長,不同的服務(wù)對數(shù)據(jù)的處理要求變得復(fù)雜多樣。批處理(batch)是目前大數(shù)據(jù)分析中對于數(shù)據(jù)處理的一種基本方法。所謂批處理也稱為批處理腳本,是對某對象進(jìn)行批量的處理,其目的是為了提高系統(tǒng)吞吐量和資源的利用率。
目前的大數(shù)據(jù)批處理,是通過將大數(shù)據(jù)分批次在同一服務(wù)器上依次進(jìn)行處理,當(dāng)某一批次的數(shù)據(jù)處理完成后,另一批次的數(shù)據(jù)才能被處理,使得部分?jǐn)?shù)據(jù)長時間處于等待處理的狀態(tài),影響了大數(shù)據(jù)的批處理進(jìn)度,從而使大數(shù)據(jù)的批處理效率較低。
因此,如何提高大數(shù)據(jù)的批處理效率是本申請需要解決的技術(shù)問題。
申請內(nèi)容
本申請實(shí)施例提供一種大數(shù)據(jù)的批處理方法,用于解決現(xiàn)有技術(shù)中大數(shù)據(jù)的批處理效率較低的問題。
本申請實(shí)施例提供一種大數(shù)據(jù)的批處理裝置,用于解決現(xiàn)有技術(shù)中大數(shù)據(jù)的批處理效率較低的問題。
本申請實(shí)施例提供一種電子設(shè)備,用于解決現(xiàn)有技術(shù)中大數(shù)據(jù)的批處理效率較低的問題。
本申請實(shí)施例提供一種計(jì)算機(jī)可讀存儲介質(zhì),用于解決現(xiàn)有技術(shù)中大數(shù)據(jù)的批處理效率較低的問題。
本申請實(shí)施例提供一種計(jì)算機(jī)系統(tǒng),用于解決現(xiàn)有技術(shù)中大數(shù)據(jù)的批處理效率較低的問題。
本申請實(shí)施例采用下述技術(shù)方案:
第一方面,提出了一種大數(shù)據(jù)的批處理方法,所述方法包括:
按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù);
將所述多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,每個所述作業(yè)執(zhí)行器用于獨(dú)立執(zhí)行節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)。
第二方面,提出了一種大數(shù)據(jù)的批處理裝置,所述裝置包括:
分區(qū)模塊,用于按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù);
分配模塊,用于將所述多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,每個所述作業(yè)執(zhí)行器用于獨(dú)立執(zhí)行節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)。
第三方面,提出了一種電子設(shè)備,所述電子設(shè)備包括:
處理器;以及
被安排成存儲計(jì)算機(jī)可執(zhí)行指令的存儲器,所述可執(zhí)行指令在被執(zhí)行時使所述處理器執(zhí)行以下操作:
按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù);
將所述多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,每個所述作業(yè)執(zhí)行器用于獨(dú)立執(zhí)行節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)。
第四方面,提出了一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)存儲一個或多個程序,所述一個或多個程序當(dāng)被包括多個應(yīng)用程序的電子設(shè)備執(zhí)行時,使得所述電子設(shè)備執(zhí)行以下操作:
按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù);
將所述多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,每個所述作業(yè)執(zhí)行器用于獨(dú)立執(zhí)行節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)。
第五方面,提出了一種計(jì)算機(jī)系統(tǒng),所述系統(tǒng)包括:
多個作業(yè)執(zhí)行器;
上述所述的大數(shù)據(jù)的批處理裝置,用于將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū)得到多個分區(qū)數(shù)據(jù),并將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行。
本申請實(shí)施例采用的上述至少一個技術(shù)方案能夠達(dá)到以下有益效果:
由于各個作業(yè)執(zhí)行器為執(zhí)行器服務(wù)器,因此,本申請通過將按照預(yù)定規(guī)則對大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù),并將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,可以使得多個分區(qū)數(shù)據(jù)可以同時在各個節(jié)點(diǎn)上的執(zhí)行器服務(wù)器上執(zhí)行,使得多個分區(qū)數(shù)據(jù)可以同時被處理,同時可以避免某一節(jié)點(diǎn)對應(yīng)的作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)的過程中出現(xiàn)異常,對其他節(jié)點(diǎn)對應(yīng)作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)造成干擾的現(xiàn)象發(fā)生,有效的提高了大數(shù)據(jù)的批處理效率。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請實(shí)施例提供的一種大數(shù)據(jù)的批處理方法的一示意性流程圖;
圖2為本申請實(shí)施例提供的一種大數(shù)據(jù)的批處理方法在實(shí)際應(yīng)用場景下的一示意性流程圖;
圖3為本申請實(shí)施例提供的一種大數(shù)據(jù)的批處理裝置的結(jié)構(gòu)示意圖;
圖4為本申請實(shí)施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖;
圖5為本申請實(shí)施例提供的一種計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
本申請實(shí)施例提供的一種大數(shù)據(jù)的批處理方法,該方法的執(zhí)行主體可以是數(shù)據(jù)處理框架或數(shù)據(jù)處理的服務(wù)器。為了便于清楚的描述本申請實(shí)施例提供的該方法,下文以方法的執(zhí)行主體為數(shù)據(jù)處理的服務(wù)器為例,詳細(xì)介紹本申請實(shí)施例提供的方法。
本領(lǐng)域技術(shù)人員可以理解,該方法的執(zhí)行主體為數(shù)據(jù)處理的服務(wù)器只是一種示例性說明,并不是對本方法的執(zhí)行主體的具體限定。
圖1示出了本申請實(shí)施例提供的一種大數(shù)據(jù)的批處理方法的一示意性流程圖,如圖1所示,該方法包括:
步驟101、按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù)。
該預(yù)定規(guī)則可以為以文件的名稱作為數(shù)據(jù)分區(qū)的規(guī)則,或以數(shù)據(jù)的標(biāo)識作為數(shù)據(jù)分區(qū)的規(guī)則,或以哈希值作為數(shù)據(jù)分區(qū)的規(guī)則;所述文件的名稱為數(shù)據(jù)所屬的文件名稱。以預(yù)定規(guī)則為以文件的名稱作為數(shù)據(jù)分區(qū)的規(guī)則為例,步驟101具體實(shí)現(xiàn)如下事例:
例1,當(dāng)同時處理多個文件(如三個文件)時,根據(jù)不同的文件名(text1、text2、text3)將分布式數(shù)據(jù)庫中的大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),以分別為text1、text2和text3這三個文件生成對應(yīng)的分區(qū)數(shù)據(jù)。
上述事例是針對多條數(shù)據(jù)文件而言,若針對某一業(yè)務(wù)數(shù)據(jù)表,預(yù)定規(guī)則為以數(shù)據(jù)的標(biāo)識作為數(shù)據(jù)分區(qū)的規(guī)則,或以哈希值作為數(shù)據(jù)分區(qū)的規(guī)則。以預(yù)定規(guī)則為以數(shù)據(jù)的標(biāo)識作為數(shù)據(jù)分區(qū)的規(guī)則為例,步驟101具體實(shí)現(xiàn)如下事例:
例2,當(dāng)處理某一業(yè)務(wù)數(shù)據(jù)表時,根據(jù)數(shù)據(jù)庫表的主關(guān)鍵字(主鍵,primarykey),將分布式數(shù)據(jù)庫中的大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū)成(0-10,11-20,21-30)三個區(qū)域,這三個區(qū)域可以分別為讀取數(shù)據(jù)區(qū)、處理數(shù)據(jù)區(qū)和寫入數(shù)據(jù)區(qū)。同時,獲取分區(qū)后每個數(shù)據(jù)分區(qū)對應(yīng)的分區(qū)數(shù)據(jù)。
步驟102、將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行。
所述各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器是指不同的作業(yè)執(zhí)行器服務(wù)器,用于分別執(zhí)行分配給各個節(jié)點(diǎn)的分區(qū)數(shù)據(jù)。
沿用上述事例1,針對多條數(shù)據(jù)文件而言,執(zhí)行步驟101為每個文件(text1、text2和text3)生成對應(yīng)的分區(qū)數(shù)據(jù),執(zhí)行步驟102將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,以實(shí)現(xiàn)將多條數(shù)據(jù)文件對應(yīng)的分區(qū)數(shù)據(jù)在不同的作業(yè)執(zhí)行器執(zhí)行,較現(xiàn)有技術(shù),無需大數(shù)據(jù)分批次在同一服務(wù)器上依次進(jìn)行處理,實(shí)現(xiàn)了多個分區(qū)數(shù)據(jù)由各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器同時執(zhí)行,使大數(shù)據(jù)的批處理可以同時進(jìn)行,有效的提高了大數(shù)據(jù)的批處理效率。
沿用上述事例2,針對某一業(yè)務(wù)數(shù)據(jù)表而言,執(zhí)行步驟101獲取分區(qū)后每個數(shù)據(jù)分區(qū)(讀取數(shù)據(jù)區(qū)、處理數(shù)據(jù)區(qū)和寫入數(shù)據(jù)區(qū))對應(yīng)的分區(qū)數(shù)據(jù),執(zhí)行步驟102將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,以實(shí)現(xiàn)在某一業(yè)務(wù)數(shù)據(jù)表中將讀取數(shù)據(jù)分配到相應(yīng)的讀取數(shù)據(jù)的執(zhí)行器執(zhí)行,將寫入數(shù)據(jù)分配到相應(yīng)的寫入數(shù)據(jù)的執(zhí)行器執(zhí)行,從而將對讀、寫的處理邏輯進(jìn)行分離,使在特定的構(gòu)化查詢語言(structuredquerylanguage,sql)操作中減少數(shù)據(jù)讀寫的總量以縮減響應(yīng)時間,實(shí)現(xiàn)了多個分區(qū)數(shù)據(jù)由各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器同時執(zhí)行,使大數(shù)據(jù)的批處理可以同時進(jìn)行,有效的提高了大數(shù)據(jù)的批處理效率。
在本步驟中,將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,具體包括如下步驟:
步驟s1、將多個分區(qū)數(shù)據(jù)發(fā)送至消息隊(duì)列。
該消息隊(duì)列是在消息的傳輸過程中保存消息的容器。消息隊(duì)列就是一個消息的鏈表,可以把消息看作一個記錄,具有特定的格式以及特定的優(yōu)先級。對消息隊(duì)列有寫權(quán)限的進(jìn)程可以向消息隊(duì)列中按照一定的規(guī)則添加新消息;對消息隊(duì)列有讀權(quán)限的進(jìn)程則可以從消息隊(duì)列中讀取消息。
步驟s2、以先進(jìn)先出的原則,將消息隊(duì)列中的分區(qū)數(shù)據(jù),分配給相應(yīng)的作業(yè)執(zhí)行器執(zhí)行。
其中,消息隊(duì)列可以包括請求隊(duì)列和響應(yīng)隊(duì)列,步驟s2進(jìn)一步為:當(dāng)作業(yè)執(zhí)行器的消息監(jiān)聽器監(jiān)測到請求隊(duì)列中存有分區(qū)數(shù)據(jù)時,可以獲取請求隊(duì)列中的分區(qū)數(shù)據(jù)分配給相應(yīng)的作業(yè)執(zhí)行器執(zhí)行。
當(dāng)所述相應(yīng)的作業(yè)執(zhí)行器執(zhí)行完畢后,將處理后的數(shù)據(jù)發(fā)送給響應(yīng)隊(duì)列,由數(shù)據(jù)處理的服務(wù)器的消息通道分區(qū)處理器將處理后的數(shù)據(jù)匯總,實(shí)現(xiàn)了將各個作業(yè)執(zhí)行器的處理結(jié)果通過消息隊(duì)列異步返回。
本申請通過將分區(qū)數(shù)據(jù)發(fā)送至消息隊(duì)列,再由各個作業(yè)執(zhí)行器從消息隊(duì)列中獲取分區(qū)數(shù)據(jù)進(jìn)行執(zhí)行,為各個作業(yè)執(zhí)行器分配為本地執(zhí)行和遠(yuǎn)程執(zhí)行,有效的解決了因數(shù)據(jù)量大致使服務(wù)器執(zhí)行壓力大的問題,提高了大數(shù)據(jù)的批處理效率。同時,各個作業(yè)執(zhí)行器的處理結(jié)果通過消息隊(duì)列異步返回,可以有效避免消息隊(duì)列擁堵,進(jìn)一步提高了大數(shù)據(jù)的批處理效率。
進(jìn)一步的,為了避免因某一分區(qū)數(shù)據(jù)處理規(guī)程中出現(xiàn)異常導(dǎo)致大數(shù)據(jù)的批處理中斷,所述方法還包括:
步驟103、監(jiān)控各個作業(yè)執(zhí)行器的執(zhí)行狀態(tài),針對執(zhí)行狀態(tài)的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生特定指令。
其中,特定指令由作業(yè)執(zhí)行器的執(zhí)行狀態(tài)確定的,用于控制執(zhí)行狀態(tài)的作業(yè)執(zhí)行器執(zhí)行特定操作。
該作業(yè)執(zhí)行器的執(zhí)行狀態(tài)可以包括執(zhí)行數(shù)據(jù)中斷、執(zhí)行數(shù)據(jù)失敗或執(zhí)行數(shù)據(jù)阻塞。其中,所述執(zhí)行數(shù)據(jù)阻塞是指產(chǎn)生的異常并不是致命異常,即非實(shí)質(zhì)性的異常狀況;所述執(zhí)行數(shù)據(jù)中斷是指瞬態(tài)異常,可以通過重試操作克服的異常狀況;所述執(zhí)行數(shù)據(jù)失敗是指由于處理數(shù)據(jù)的服務(wù)器發(fā)生錯誤的情況。
而針對不同的執(zhí)行狀態(tài),則會產(chǎn)生相應(yīng)的指令,具體如下:
若監(jiān)測所述作業(yè)執(zhí)行器執(zhí)行數(shù)據(jù)阻塞,則針對所述執(zhí)行數(shù)據(jù)阻塞的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生跳過指令,所述跳過指令用于控制所述執(zhí)行數(shù)據(jù)阻塞的作業(yè)執(zhí)行器執(zhí)行跳過操作;
若監(jiān)測所述作業(yè)執(zhí)行器執(zhí)行數(shù)據(jù)中斷,則針對所述執(zhí)行數(shù)據(jù)中斷的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生重試指令,所述重試指令用于控制所述執(zhí)行數(shù)據(jù)中斷的作業(yè)執(zhí)行器執(zhí)行重試操作;
若監(jiān)測所述作業(yè)執(zhí)行器執(zhí)行數(shù)據(jù)失敗,則針對所述執(zhí)行數(shù)據(jù)失敗的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生重啟指令,所述重啟指令用于控制所述執(zhí)行數(shù)據(jù)失敗的作業(yè)執(zhí)行器執(zhí)行重啟操作。
也就是說,若所述特定指令為跳過指令,則該作業(yè)執(zhí)行器跳過正在處理的分區(qū)數(shù)據(jù),繼續(xù)執(zhí)行;若所述特定指令為重試指令,則該作業(yè)執(zhí)行器對當(dāng)前的分區(qū)數(shù)據(jù)進(jìn)行重新處理;若所述特定指令為重啟指令,則該作業(yè)執(zhí)行器在最后執(zhí)行失敗處重新啟動執(zhí)行作業(yè)。
本申請通過在分區(qū)數(shù)據(jù)處理過程中,某一作業(yè)執(zhí)行器出現(xiàn)異常的情況下,可以有效的通過跳過、重試和重新啟動等操作克服異常狀況,能夠有效避免大數(shù)據(jù)的批處理中斷,確保了批處理的連續(xù)性和穩(wěn)定性。
這里需要補(bǔ)充的是,對各個作業(yè)執(zhí)行器的執(zhí)行狀態(tài)進(jìn)行記錄。在本實(shí)施例中,該執(zhí)行狀態(tài)的記錄數(shù)據(jù)存儲在分布式數(shù)據(jù)庫中。本申請通過對各個作業(yè)執(zhí)行器的執(zhí)行狀態(tài)的記錄,可以明確的獲知各個作業(yè)執(zhí)行器的執(zhí)行次數(shù)、重試次數(shù)、跳過次數(shù)及執(zhí)行時間,便于后續(xù)的維護(hù)和查看。
進(jìn)一步的,為了避免通過人工操作來控制作業(yè)執(zhí)行器工作,致使批處理效率低的問題,所述方法還包括:
步驟105、獲取用戶為各個節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)設(shè)置的多個計(jì)時階段,以及每個計(jì)時階段的計(jì)時時間。
也就是說,用戶預(yù)先對大數(shù)據(jù)中的各個分區(qū)數(shù)據(jù)的處理時間階段進(jìn)行設(shè)置,以及對每個時間階段中各個分區(qū)數(shù)據(jù)進(jìn)行處理的開始時間進(jìn)行設(shè)置。當(dāng)然,每個時間階段中各個分區(qū)數(shù)據(jù)進(jìn)行處理的開始時間,也可以通過處理數(shù)據(jù)的服務(wù)器進(jìn)行計(jì)算得到。
步驟106、在啟動計(jì)時后,依次對每個計(jì)時階段的計(jì)時時間進(jìn)行倒計(jì)時。
步驟107、在每個計(jì)時階段的計(jì)時時間倒計(jì)時完成后,調(diào)度與各個分區(qū)數(shù)據(jù)對應(yīng)的各個作業(yè)執(zhí)行器執(zhí)行作業(yè)。
本步驟,在計(jì)時一定時間后,調(diào)度與各個分區(qū)數(shù)據(jù)對應(yīng)的各個作業(yè)執(zhí)行器執(zhí)行作業(yè),使得各個作業(yè)執(zhí)行器的調(diào)度無需人工控制,有效確保大數(shù)據(jù)的處理按照合理的時間處理,有效緩解了各個業(yè)務(wù)執(zhí)行器的執(zhí)行壓力,進(jìn)而確保大數(shù)據(jù)的批處理順暢進(jìn)行,提高了批處理的效率。
下面,將結(jié)合具體的實(shí)施例,對本申請實(shí)施例的方法作進(jìn)一步的描述。
圖2示出了本申請實(shí)施例提供的一種大數(shù)據(jù)的批處理方法在實(shí)際應(yīng)用場景下的一示意性流程圖。
具體地說,如圖2所示,在s210,按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù)。
在本申請實(shí)施例中,例如,分布式數(shù)據(jù)庫中包括業(yè)務(wù)表,該業(yè)務(wù)表上有需讀取數(shù)據(jù)(即作業(yè)步a)、處理數(shù)據(jù)(即作業(yè)步b)和寫入數(shù)據(jù)c(即作業(yè)步c),按照所述預(yù)定規(guī)則,將上述的作業(yè)步a、作業(yè)步b和作業(yè)步c進(jìn)行數(shù)據(jù)分區(qū),得到分區(qū)數(shù)據(jù):讀取分區(qū)數(shù)據(jù)(即執(zhí)行上下文a)、處理分區(qū)數(shù)據(jù)(即執(zhí)行上下文b)和寫入分區(qū)數(shù)據(jù)(即執(zhí)行上下文c)。其中,預(yù)定規(guī)則可以與上述實(shí)施例中相似,這里,為了避免贅述,省略其說明。
在s220,將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行。
在本申請實(shí)施例中,首先,通過作業(yè)步執(zhí)行分流器將步驟s210中獲得的分區(qū)數(shù)據(jù)執(zhí)行上下文a、執(zhí)行上下文b和執(zhí)行上下文c,分成遠(yuǎn)程執(zhí)行作業(yè)步a、遠(yuǎn)程執(zhí)行作業(yè)步b和遠(yuǎn)程執(zhí)行作業(yè)步c。然后,將遠(yuǎn)程執(zhí)行作業(yè)步a、遠(yuǎn)程執(zhí)行作業(yè)步b和遠(yuǎn)程執(zhí)行作業(yè)步c通過消息通道分區(qū)處理器,發(fā)送至消失隊(duì)列的請求隊(duì)列中,由執(zhí)行器的消息監(jiān)聽器監(jiān)測請求隊(duì)列中存有遠(yuǎn)程執(zhí)行作業(yè)步后,將該遠(yuǎn)程執(zhí)行作業(yè)步發(fā)送給對應(yīng)的作業(yè)執(zhí)行器執(zhí)行。最后,將該作業(yè)執(zhí)行器執(zhí)行后獲得的執(zhí)行結(jié)果,反饋給消息隊(duì)列的響應(yīng)隊(duì)列,由相應(yīng)隊(duì)列將執(zhí)行結(jié)果匯總至消息通道分區(qū)處理器中。
由于各個作業(yè)執(zhí)行器為執(zhí)行器服務(wù)器,因此,本申請通過將按照預(yù)定規(guī)則對大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù),并將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,可以使得多個分區(qū)數(shù)據(jù)可以同時在各個節(jié)點(diǎn)上的執(zhí)行器服務(wù)器上執(zhí)行,使得多個分區(qū)數(shù)據(jù)可以同時被處理,同時可以避免某一節(jié)點(diǎn)對應(yīng)的作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)的過程中出現(xiàn)異常,對其他節(jié)點(diǎn)對應(yīng)作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)造成干擾的現(xiàn)象發(fā)生,有效的提高了大數(shù)據(jù)的批處理效率。
以上,結(jié)合圖1和圖2詳細(xì)說明了本申請實(shí)施例的大數(shù)據(jù)的批處理方法,下面,結(jié)合圖3,詳細(xì)說明本申請實(shí)施例的大數(shù)據(jù)的批處理裝置。
圖3示出了本申請實(shí)施例提供的一種大數(shù)據(jù)的批處理裝置的結(jié)構(gòu)示意圖,如圖3所示,該大數(shù)據(jù)的批處理裝置基于與本申請一實(shí)施例提供的一種大數(shù)據(jù)的批處理方法同樣的發(fā)明構(gòu)思,該裝置包括:
分區(qū)模塊301,用于按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù);其中,該預(yù)定規(guī)則可以為以文件的名稱作為數(shù)據(jù)分區(qū)的規(guī)則,或以數(shù)據(jù)的標(biāo)識作為數(shù)據(jù)分區(qū)的規(guī)則,或以哈希值作為數(shù)據(jù)分區(qū)的規(guī)則;所述文件的名稱為數(shù)據(jù)所屬的文件名稱。
分配模塊302,用于將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,作業(yè)執(zhí)行器用于獨(dú)立執(zhí)行節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)。
分配模塊302可以包括:
發(fā)送單元,用于將多個分區(qū)數(shù)據(jù)發(fā)送至消息隊(duì)列;
分配單元,用于以先進(jìn)先出的原則,將消息隊(duì)列中的分區(qū)數(shù)據(jù),分配給相應(yīng)的作業(yè)執(zhí)行器執(zhí)行。
大數(shù)據(jù)的批處理裝置還可以包括:
監(jiān)控模塊,用于監(jiān)控各個作業(yè)執(zhí)行器的執(zhí)行狀態(tài),針對執(zhí)行狀態(tài)的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生特定指令,特定指令由作業(yè)執(zhí)行器的執(zhí)行狀態(tài)確定的,用于控制執(zhí)行狀態(tài)的作業(yè)執(zhí)行器執(zhí)行特定操作。
作業(yè)執(zhí)行器的執(zhí)行狀態(tài)可以包括執(zhí)行數(shù)據(jù)中斷、執(zhí)行數(shù)據(jù)失敗或執(zhí)行數(shù)據(jù)阻塞;
監(jiān)控模塊可以包括:
跳過指令產(chǎn)生單元,用于若監(jiān)測所述作業(yè)執(zhí)行器執(zhí)行數(shù)據(jù)阻塞,則針對所述執(zhí)行數(shù)據(jù)阻塞的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生跳過指令,所述跳過指令用于控制所述執(zhí)行數(shù)據(jù)阻塞的作業(yè)執(zhí)行器執(zhí)行跳過操作;
重試指令產(chǎn)生單元,用于若監(jiān)測所述作業(yè)執(zhí)行器執(zhí)行數(shù)據(jù)中斷,則針對所述執(zhí)行數(shù)據(jù)中斷的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生重試指令,所述重試指令用于控制所述執(zhí)行數(shù)據(jù)中斷的作業(yè)執(zhí)行器執(zhí)行重試操作;
重啟指令產(chǎn)生單元,用于若監(jiān)測所述作業(yè)執(zhí)行器執(zhí)行數(shù)據(jù)失敗,則針對所述執(zhí)行數(shù)據(jù)失敗的作業(yè)執(zhí)行器對應(yīng)的分區(qū)數(shù)據(jù)產(chǎn)生重啟指令,所述重啟指令用于控制所述執(zhí)行數(shù)據(jù)失敗的作業(yè)執(zhí)行器執(zhí)行重啟操作。
大數(shù)據(jù)的批處理裝置還可以包括:
獲取模塊,用于獲取用戶為各個節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)設(shè)置的多個計(jì)時階段,以及每個計(jì)時階段的計(jì)時時間;
計(jì)時模塊,用于在啟動計(jì)時后,依次對每個計(jì)時階段的計(jì)時時間進(jìn)行倒計(jì)時;
調(diào)度模塊,用于在每個計(jì)時階段的計(jì)時時間倒計(jì)時完成后,調(diào)度與各個分區(qū)數(shù)據(jù)對應(yīng)的各個作業(yè)執(zhí)行器執(zhí)行作業(yè)。
由于各個作業(yè)執(zhí)行器為執(zhí)行器服務(wù)器,因此,本申請通過將按照預(yù)定規(guī)則對大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù),并將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,可以使得多個分區(qū)數(shù)據(jù)可以同時在各個節(jié)點(diǎn)上的執(zhí)行器服務(wù)器上執(zhí)行,使得多個分區(qū)數(shù)據(jù)可以同時被處理,同時可以避免某一節(jié)點(diǎn)對應(yīng)的作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)的過程中出現(xiàn)異常,對其他節(jié)點(diǎn)對應(yīng)作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)造成干擾的現(xiàn)象發(fā)生,有效的提高了大數(shù)據(jù)的批處理效率。
圖4是本申請的一個實(shí)施例電子設(shè)備的結(jié)構(gòu)示意圖。請參考圖4,在硬件層面,該電子設(shè)備包括處理器,可選地還包括內(nèi)部總線、網(wǎng)絡(luò)接口、存儲器。其中,存儲器可能包含內(nèi)存,例如高速隨機(jī)存取存儲器(random-accessmemory,ram),也可能還包括非易失性存儲器(non-volatilememory),例如至少1個磁盤存儲器等。當(dāng)然,該電子設(shè)備還可能包括其他業(yè)務(wù)所需要的硬件。
處理器、網(wǎng)絡(luò)接口和存儲器可以通過內(nèi)部總線相互連接,該內(nèi)部總線可以是isa(industrystandardarchitecture,工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu))總線、pci(peripheralcomponentinterconnect,外設(shè)部件互連標(biāo)準(zhǔn))總線或eisa(extendedindustrystandardarchitecture,擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖4中僅用一個雙向箭頭表示,但并不表示僅有一根總線或一種類型的總線。
存儲器,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲器可以包括內(nèi)存和非易失性存儲器,并向處理器提供指令和數(shù)據(jù)。
處理器從非易失性存儲器中讀取對應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成應(yīng)用大數(shù)據(jù)的批處理裝置。處理器,執(zhí)行存儲器所存放的程序,并具體用于執(zhí)行以下操作:
按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù);
將所述多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,每個所述作業(yè)執(zhí)行器用于獨(dú)立執(zhí)行節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)。
上述如本申請圖1所示實(shí)施例揭示的大數(shù)據(jù)的批處理裝置執(zhí)行的方法可以應(yīng)用于處理器中,或者由處理器實(shí)現(xiàn)。處理器可能是一種集成電路芯片,具有信號的處理能力。在實(shí)現(xiàn)過程中,上述方法的各步驟可以通過處理器中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網(wǎng)絡(luò)處理器(networkprocessor,np)等;還可以是數(shù)字信號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)場可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本申請實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本申請實(shí)施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器,處理器讀取存儲器中的信息,結(jié)合其硬件完成上述方法的步驟。
該電子設(shè)備還可執(zhí)行圖1中大數(shù)據(jù)的批處理裝置執(zhí)行的方法,并實(shí)現(xiàn)大數(shù)據(jù)的批處理裝置在圖1所示實(shí)施例的功能,本申請實(shí)施例在此不再贅述。
本申請實(shí)施例還提出了一種計(jì)算機(jī)可讀存儲介質(zhì),該計(jì)算機(jī)可讀存儲介質(zhì)存儲一個或多個程序,該一個或多個程序包括指令,該指令當(dāng)被包括多個應(yīng)用程序的電子設(shè)備執(zhí)行時,能夠使該電子設(shè)備執(zhí)行圖1所示實(shí)施例中大數(shù)據(jù)的批處理裝置執(zhí)行的方法,并具體用于執(zhí)行:
按照預(yù)定規(guī)則,將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù);
將所述多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,每個所述作業(yè)執(zhí)行器用于獨(dú)立執(zhí)行節(jié)點(diǎn)對應(yīng)的分區(qū)數(shù)據(jù)。
以上,結(jié)合圖1和圖2詳細(xì)說明了本申請實(shí)施例的大數(shù)據(jù)的批處理方法,下面,結(jié)合圖5,詳細(xì)說明本申請實(shí)施例的計(jì)算機(jī)系統(tǒng)。
圖5示出了本申請實(shí)施例提供的一種計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖,如圖5所示,該系統(tǒng)可包括:多個作業(yè)執(zhí)行器501和大數(shù)據(jù)的批處理裝置502。該大數(shù)據(jù)的批處理裝置502可以是圖3所示實(shí)施例的大數(shù)據(jù)的批處理裝置,該大數(shù)據(jù)的批處理裝置502用于將大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū)得到多個分區(qū)數(shù)據(jù),并將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器501執(zhí)行。
由于各個作業(yè)執(zhí)行器為執(zhí)行器服務(wù)器,因此,本申請通過將按照預(yù)定規(guī)則對大數(shù)據(jù)進(jìn)行數(shù)據(jù)分區(qū),得到多個分區(qū)數(shù)據(jù),并將多個分區(qū)數(shù)據(jù)分配給各個節(jié)點(diǎn)上的作業(yè)執(zhí)行器執(zhí)行,可以使得多個分區(qū)數(shù)據(jù)可以同時在各個節(jié)點(diǎn)上的執(zhí)行器服務(wù)器上執(zhí)行,使得多個分區(qū)數(shù)據(jù)可以同時被處理,同時可以避免某一節(jié)點(diǎn)對應(yīng)的作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)的過程中出現(xiàn)異常,對其他節(jié)點(diǎn)對應(yīng)作業(yè)執(zhí)行器在處理分區(qū)數(shù)據(jù)造成干擾的現(xiàn)象發(fā)生,有效的提高了大數(shù)據(jù)的批處理效率。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為裝置、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實(shí)施例的裝置、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計(jì)算設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何裝置或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲器(sram)、動態(tài)隨機(jī)存取存儲器(dram)、其他類型的隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、裝置、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、裝置、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、裝置、商品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。