亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

執(zhí)行計(jì)算任務(wù)的方法、裝置及系統(tǒng)與流程

文檔序號(hào):12801747閱讀:251來(lái)源:國(guó)知局
本申請(qǐng)涉及互聯(lián)網(wǎng)的領(lǐng)域,特別涉及一種執(zhí)行計(jì)算任務(wù)的方法、裝置及系統(tǒng)。
背景技術(shù)
::在分布式計(jì)算平臺(tái)中,如圖1所示,通常會(huì)設(shè)置一主設(shè)備和多個(gè)從設(shè)備,主設(shè)備主要用于接收計(jì)算任務(wù),且分配計(jì)算任務(wù)至從設(shè)備;從設(shè)備主要用于根據(jù)主設(shè)備的分配,執(zhí)行計(jì)算任務(wù)。而從設(shè)備執(zhí)行計(jì)算任務(wù)的過(guò)程一般如下:首先確定主設(shè)備分配計(jì)算任務(wù)的數(shù)據(jù)源;然后讀取數(shù)據(jù)源存儲(chǔ)的數(shù)據(jù);再然后對(duì)讀取的數(shù)據(jù)進(jìn)行過(guò)濾,獲取目標(biāo)數(shù)據(jù);最后利用計(jì)算程序?qū)δ繕?biāo)數(shù)據(jù)進(jìn)行計(jì)算,即執(zhí)行計(jì)算任務(wù)。在實(shí)際應(yīng)用中,分布式計(jì)算平臺(tái)可同時(shí)接收多個(gè)計(jì)算任務(wù),而如果所接收的多個(gè)計(jì)算任務(wù)的數(shù)據(jù)源相同,那么從設(shè)備需要從同一數(shù)據(jù)源多次讀取數(shù)據(jù);比如分布式計(jì)算平臺(tái)接收到a、b、c三個(gè)計(jì)算任務(wù),且這三個(gè)計(jì)算任務(wù)的數(shù)據(jù)源均為m;而主設(shè)備分別將a、b、c三個(gè)計(jì)算任務(wù)分配至從設(shè)備a、從設(shè)備b以及從設(shè)備c執(zhí)行;那么從設(shè)備a在執(zhí)行計(jì)算任務(wù)a時(shí),需首先確定計(jì)算任務(wù)a的數(shù)據(jù)源m,然后從數(shù)據(jù)源m讀取數(shù)據(jù);從設(shè)備b在執(zhí)行計(jì)算任務(wù)b時(shí),也需首先確定計(jì)算任務(wù)b的數(shù)據(jù)源m,然后從數(shù)據(jù)源m讀取數(shù)據(jù);從設(shè)備c在執(zhí)行計(jì)算任務(wù)c時(shí),亦是如此。由上可見(jiàn),在現(xiàn)有技術(shù)中,當(dāng)分布式計(jì)算平臺(tái)所接收多個(gè)計(jì)算任務(wù)的數(shù)據(jù)源相同時(shí),從設(shè)備需多次從同一數(shù)據(jù)源讀取數(shù)據(jù),從而使得分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率低下。申請(qǐng)內(nèi)容本申請(qǐng)實(shí)施例中提供了一種執(zhí)行計(jì)算任務(wù)的方法、裝置及系統(tǒng),以提高分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。為了解決上述技術(shù)問(wèn)題,本申請(qǐng)實(shí)施例公開(kāi)了如下技術(shù)方案:第一方面,公開(kāi)了一種執(zhí)行計(jì)算任務(wù)的方法,包括:解析所接收的多個(gè)計(jì)算任務(wù),獲取每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);如果存在,從相同數(shù)據(jù)源讀取數(shù)據(jù);輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù) 據(jù)執(zhí)行計(jì)算任務(wù)??蛇x的,第一方面的方法還包括:判斷數(shù)據(jù)源相同的計(jì)算任務(wù)中,是否存在過(guò)濾條件,所述過(guò)濾條件用于對(duì)讀取的數(shù)據(jù)進(jìn)行過(guò)濾;如果存在,利用所述過(guò)濾條件對(duì)所讀取的數(shù)據(jù)進(jìn)行過(guò)濾,獲得目標(biāo)數(shù)據(jù)??蛇x的,所讀取數(shù)據(jù)包括目標(biāo)數(shù)據(jù),所述輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,包括:輸出所述目標(biāo)數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備??蛇x的,第一方面的方法還包括:判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;如果不存在,使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。第二方面,公開(kāi)了一種執(zhí)行計(jì)算任務(wù)的方法,包括:判斷一計(jì)算任務(wù)的輸出是否作為多個(gè)計(jì)算任務(wù)的輸入;如果是,獲取所述計(jì)算任務(wù)輸出的數(shù)據(jù)源,且從所述數(shù)據(jù)源讀取數(shù)據(jù);輸出所讀取數(shù)據(jù)至所述多個(gè)計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù)據(jù)執(zhí)行計(jì)算任務(wù)??蛇x的,第二方面的方法還包括:判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;如果不存在,使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。第三方面,公開(kāi)了一種執(zhí)行計(jì)算任務(wù)的裝置,包括:解析模塊,用于解析所接收的多個(gè)計(jì)算任務(wù),獲取每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;第一判斷模塊,用于判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);讀取模塊,用于當(dāng)存在數(shù)據(jù)源相同的計(jì)算任務(wù)時(shí),從相同數(shù)據(jù)源讀取數(shù)據(jù);第一輸出模塊,用于輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù)據(jù)執(zhí)行計(jì)算任務(wù)??蛇x的,第三方面的裝置還包括:第二判斷模塊,用于判斷據(jù)源相同的計(jì)算任務(wù)中,是否存在過(guò)濾條件,所述過(guò)濾條件用于對(duì)讀取的數(shù)據(jù)進(jìn)行過(guò)濾;過(guò)濾模塊,用于當(dāng)所述計(jì)算任務(wù)中,存在過(guò)濾條件時(shí),利用所述過(guò)濾條件對(duì)所讀取的數(shù)據(jù)進(jìn)行過(guò)濾,獲得目標(biāo)數(shù)據(jù)。可選的,所讀取數(shù)據(jù)包括目標(biāo)數(shù)據(jù),所述第一輸出模塊,包括:目標(biāo)數(shù)據(jù)輸出單元,用于輸出所述目標(biāo)數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備。可選的,第三方面的裝置還包括:第三判斷模塊,用于判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;第一并列執(zhí)行模塊,用于當(dāng)多個(gè)計(jì)算任務(wù)間不存在執(zhí)行順序時(shí),使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。第四方面,公開(kāi)一種執(zhí)行計(jì)算任務(wù)的裝置,包括:第四判斷模塊,用于判斷一計(jì)算任務(wù)的輸出是否作為多個(gè)計(jì)算任務(wù)的輸入;獲取讀取模塊,用于當(dāng)一計(jì)算任務(wù)的輸出作為多個(gè)計(jì)算任務(wù)的輸入時(shí),獲取所述計(jì)算任務(wù)輸出的數(shù)據(jù)源,且從所述數(shù)據(jù)源讀取數(shù)據(jù);第二輸出模塊,用于輸出所讀取數(shù)據(jù)至所述多個(gè)計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù)據(jù)執(zhí)行計(jì)算任務(wù)??蛇x的,第四方面的裝置還包括:第五判斷模塊,用于判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;第二并列執(zhí)行模塊,用于當(dāng)多個(gè)計(jì)算任務(wù)間不存在執(zhí)行順序時(shí),使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。第五方面,公開(kāi)一種執(zhí)行計(jì)算任務(wù)的系統(tǒng),所述系統(tǒng)包括如權(quán)利要求7—12任一項(xiàng)所述的執(zhí)行計(jì)算任務(wù)的裝置以及執(zhí)行設(shè)備;所述執(zhí)行設(shè)備,用于根據(jù)執(zhí)行計(jì)算任務(wù)的裝置所輸出的讀取數(shù)據(jù),執(zhí)行計(jì)算任務(wù)。由以上技術(shù)方案可見(jiàn),在本申請(qǐng)實(shí)施例中,首先解析所接收的多個(gè)計(jì)算任務(wù),獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;然后判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);如果存在,從相同數(shù)據(jù)源讀取數(shù)據(jù);最后,輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備;由于執(zhí)行設(shè)備可直接根據(jù)所讀取數(shù)據(jù)執(zhí)行任務(wù),因此,采用本申請(qǐng)實(shí)施例所公開(kāi)的方法、裝置及系統(tǒng),對(duì)于具有相同數(shù)據(jù)源的計(jì)算任務(wù),僅需從數(shù)據(jù)源讀取一次數(shù)據(jù)即可,相比現(xiàn)有技術(shù)中的多次讀取數(shù)據(jù)的方式,提高了分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。附圖說(shuō)明為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請(qǐng)實(shí)施例所公開(kāi)的分布式計(jì)算平臺(tái)的一示意圖;圖2為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的方法一流程示意圖;圖3為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的方法另一流程示意圖;圖4a為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的方法又一流程示意圖;圖4b為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的方法另一流程示意圖;圖5為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的方法另一流程示意圖;圖6為本申請(qǐng)實(shí)施例所公開(kāi)的計(jì)算任務(wù)示意圖;圖7為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的方法又一流程示意圖;圖8為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的裝置的一結(jié)構(gòu)示意圖;圖9為本申請(qǐng)實(shí)施例所公開(kāi)的執(zhí)行計(jì)算任務(wù)的系統(tǒng)的一結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。本申請(qǐng)公開(kāi)了一種執(zhí)行計(jì)算任務(wù)的方法,所述方法應(yīng)用于如圖1所示的分布式計(jì)算平臺(tái)中,在本申請(qǐng)實(shí)施例中,當(dāng)分布式計(jì)算平臺(tái)接收到多個(gè)計(jì)算任務(wù)時(shí),分布式計(jì)算平臺(tái)的主設(shè)備首先為每個(gè)計(jì)算任務(wù)分配執(zhí)行計(jì)算任務(wù)的從設(shè)備(即執(zhí)行設(shè)備),然后主設(shè)備將按照,如圖2所示流程,對(duì)計(jì)算任務(wù)進(jìn)行處理,具體如下:步驟s21:解析所接收的多個(gè)計(jì)算任務(wù),獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;在本申請(qǐng)實(shí)施例中,分布式計(jì)算平臺(tái)所接收的計(jì)算任務(wù)通常以程序代碼的形式呈現(xiàn),且程序代碼中通常包含計(jì)算任務(wù)的數(shù)據(jù)源。以以下計(jì)算任務(wù)為例,詳細(xì)說(shuō)明步驟s21:“createtabletest__00asselect*fromtbcdm.dim_tb_itmwhereds=’20150904’anditem_id=0;”在本申請(qǐng)實(shí)施例中,通過(guò)對(duì)上述程序代碼的解析,即可獲得該計(jì)算任務(wù)的數(shù)據(jù)源“tbcdm.dim_tb_itm”。步驟s22:判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);如果存在,執(zhí)行步驟s23;否則執(zhí)行步驟s25;步驟s23:從相同數(shù)據(jù)源讀取數(shù)據(jù);在本申請(qǐng)實(shí)施例中,例如接收兩個(gè)計(jì)算任務(wù),分別為計(jì)算任務(wù)a和計(jì)算任務(wù)b,通過(guò)步驟s21的解析,獲得計(jì)算任務(wù)a的數(shù)據(jù)源為“tbcdm.dim_tb_itm”;計(jì)算任務(wù)b的數(shù)據(jù)源為“tbcdm.dim_tb_itm”;通過(guò)步驟s22的判斷,可確定計(jì)算任務(wù)a與計(jì)算任務(wù)b的數(shù)據(jù)源相同,均為“tbcdm.dim_tb_itm”;那么,在步驟s23中,將讀取數(shù)據(jù)源“tbcdm.dim_tb_itm”處所存儲(chǔ)的數(shù)據(jù)。步驟s24:輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù)據(jù)執(zhí)行計(jì)算任務(wù);在本申請(qǐng)實(shí)施例中,上述步驟s24可具體為將所讀取數(shù)據(jù)寫(xiě)入相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,而執(zhí)行設(shè)備將利用相應(yīng)的應(yīng)用程序?qū)?xiě)入的數(shù)據(jù)進(jìn)行處理,從而完成計(jì)算任務(wù)。步驟s25:輸出不相同數(shù)據(jù)源計(jì)算任務(wù)至執(zhí)行設(shè)備。在本申請(qǐng)實(shí)施例中,不相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,可具體按照如下方式,執(zhí)行計(jì)算任務(wù):首先通過(guò)主設(shè)備獲取不相同計(jì)算任務(wù)的數(shù)據(jù)源(由于在本申請(qǐng)實(shí)施例中,主設(shè)備預(yù)先已通過(guò)解析計(jì)算任務(wù),獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源,因此執(zhí)行設(shè)備可獲取計(jì)算任務(wù)的數(shù)據(jù)源);然后從相應(yīng)數(shù)據(jù)源讀取數(shù)據(jù);最后,利用相應(yīng)的計(jì)算程序?qū)λx取數(shù)據(jù)進(jìn)行計(jì)算,從而完成計(jì)算任務(wù)。在實(shí)際應(yīng)用中,由于分布式計(jì)算平臺(tái),可處理各種類(lèi)型的計(jì)算任務(wù),比如sql、pl以及mr等類(lèi)型,而對(duì)于不同類(lèi)型的計(jì)算任務(wù),計(jì)算平臺(tái)的處理流程均不相同,因此,在本申請(qǐng)實(shí)施例中,當(dāng)用戶(hù)需采用上述方法,對(duì)計(jì)算任務(wù)進(jìn)行處理時(shí),可預(yù)先將上述計(jì)算任務(wù)打包成一預(yù)定類(lèi)型,比如paratask類(lèi)型,而計(jì)算平臺(tái)一旦檢測(cè)到預(yù)定類(lèi)型的計(jì)算任務(wù)時(shí),將采用上述流程對(duì)計(jì)算任務(wù)進(jìn)行處理。由以上技術(shù)方案可見(jiàn),在本申請(qǐng)實(shí)施例中,首先解析所接收的多個(gè)計(jì)算任務(wù),獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;然后判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù); 如果存在,從相同數(shù)據(jù)源讀取數(shù)據(jù);最后,輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備;由于執(zhí)行設(shè)備可直接根據(jù)所讀取數(shù)據(jù)執(zhí)行任務(wù),因此,采用本申請(qǐng)實(shí)施例所公開(kāi)的方法,對(duì)于具有相同數(shù)據(jù)源的計(jì)算任務(wù),僅需從數(shù)據(jù)源讀取一次數(shù)據(jù)即可,相比現(xiàn)有技術(shù)中的多次讀取數(shù)據(jù)的方式,提高了分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。本申請(qǐng)公開(kāi)了另一種執(zhí)行計(jì)算任務(wù)的方法,所述方法應(yīng)用于如圖1所示的分布式計(jì)算平臺(tái)中,在本申請(qǐng)實(shí)施例中,當(dāng)分布式計(jì)算平臺(tái)接收到多個(gè)計(jì)算任務(wù)時(shí),分布式計(jì)算平臺(tái)的主設(shè)備首先為每個(gè)計(jì)算任務(wù)分配執(zhí)行計(jì)算任務(wù)的從設(shè)備(即執(zhí)行設(shè)備),然后主設(shè)備將按照,如圖3所示流程,對(duì)計(jì)算任務(wù)進(jìn)行處理,具體如下:步驟s31:解析所接收的多個(gè)計(jì)算任務(wù),獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;步驟s32:判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);如果存在,執(zhí)行步驟s33;否則,執(zhí)行步驟s38;步驟s33:從相同數(shù)據(jù)源讀取數(shù)據(jù);步驟s34:判斷數(shù)據(jù)源相同的計(jì)算任務(wù)中,是否存在過(guò)濾條件;如果存在,執(zhí)行步驟s35;否則執(zhí)行s37;在實(shí)際應(yīng)用中,分布式計(jì)算平臺(tái)所接收的有些計(jì)算任務(wù),并不是對(duì)數(shù)據(jù)源所存儲(chǔ)的全部數(shù)據(jù)進(jìn)行處理,而僅需對(duì)其中的一部分?jǐn)?shù)據(jù)進(jìn)行處理,此時(shí),會(huì)在計(jì)算任務(wù)中,設(shè)置過(guò)濾條件,所述過(guò)濾條件用于對(duì)所讀取的數(shù)據(jù)進(jìn)行過(guò)濾;比如,分布式計(jì)算平臺(tái)所接收的一計(jì)算任務(wù)如下:“createtabletest__00asselect*fromtbcdm.dim_tb_itmwhereds=’20150904’anditem_id=0;”通過(guò)對(duì)上述計(jì)算任務(wù)進(jìn)行分析可得,該計(jì)算任務(wù)是對(duì)數(shù)據(jù)源“tbcdm.dim_tb_itm”所存儲(chǔ)數(shù)據(jù)中,滿(mǎn)足“whereds=’20150904’anditem_id=0”這一條件的數(shù)據(jù)進(jìn)行處理,而“whereds=’20150904’anditem_id=0”即為該計(jì)算任務(wù)的過(guò)濾條件。步驟s35:利用所述過(guò)濾條件對(duì)所讀取數(shù)據(jù)進(jìn)行過(guò)濾,獲得目標(biāo)數(shù)據(jù);步驟s36:輸出目標(biāo)數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)目標(biāo)數(shù)據(jù)執(zhí)行計(jì)算任務(wù);在本申請(qǐng)實(shí)施例中,可具體將目標(biāo)數(shù)據(jù)寫(xiě)入至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,而執(zhí)行設(shè)備直接利用相應(yīng)計(jì)算程序?qū)δ繕?biāo)數(shù)據(jù)進(jìn)行處理即可。步驟s37:輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備;步驟s38:輸出不相同數(shù)據(jù)源計(jì)算任務(wù)至執(zhí)行設(shè)備;由上可見(jiàn),在本申請(qǐng)實(shí)施例中,首先解析所接收的多個(gè)計(jì)算任務(wù),獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;然后判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);如果存在,從相同數(shù)據(jù)源讀取數(shù)據(jù);最后,輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備;由于執(zhí)行設(shè)備可直接根據(jù)所讀取數(shù)據(jù)執(zhí)行任務(wù),因此,采用本申請(qǐng)實(shí)施例所公開(kāi)的方法,對(duì)于具有相同數(shù)據(jù)源的計(jì)算任務(wù),僅需從數(shù)據(jù)源讀取一次數(shù)據(jù)即可,相比現(xiàn)有技術(shù)中的多次讀取數(shù)據(jù)的方式,提高了分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。在本申請(qǐng)的另一可行實(shí)施例中,上述所有實(shí)施例中的步驟s21或步驟s31可包括:a:確定多個(gè)計(jì)算任務(wù)的編寫(xiě)語(yǔ)言;b:根據(jù)所述編寫(xiě)語(yǔ)言的語(yǔ)法規(guī)則,分別對(duì)多個(gè)計(jì)算任務(wù)進(jìn)行解析,獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源。如前所述,計(jì)算任務(wù)通常以程序代碼的形式呈現(xiàn),而用戶(hù)可采用不同的編寫(xiě)語(yǔ)言編寫(xiě)計(jì)算任務(wù),且不同編寫(xiě)語(yǔ)言的語(yǔ)法規(guī)則為不同的。因此,在本申請(qǐng)實(shí)施例中,需根據(jù)計(jì)算任務(wù)編寫(xiě)語(yǔ)言的語(yǔ)法規(guī)則,確定計(jì)算任務(wù)的數(shù)據(jù)源在本申請(qǐng)的又一可行實(shí)施例中,如圖4a或4b所示,上述所有實(shí)施例中的方法還可包括:步驟s41:判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;如果存在,執(zhí)行步驟s42;否則,執(zhí)行步驟s43;步驟s42:使執(zhí)行設(shè)備按順序執(zhí)行多個(gè)計(jì)算任務(wù);步驟s43:使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。在實(shí)際應(yīng)用中,分布式計(jì)算平臺(tái)所接收的多個(gè)計(jì)算任務(wù)可能存在執(zhí)行順序,比如:接收計(jì)算任務(wù)a、b、c以及d,且計(jì)算任務(wù)a的輸出作為計(jì)算任務(wù)b的輸入,計(jì)算任務(wù)b的輸出作為計(jì)算任務(wù)c的輸入,計(jì)算任務(wù)c的輸出作為計(jì)算任務(wù)d的輸出,那么此時(shí)執(zhí)行設(shè)備必須按順序執(zhí)行計(jì)算任務(wù)a—b—c—d。而分布式計(jì)算平臺(tái)所接收的大部分計(jì)算任務(wù)為獨(dú)立的,即多個(gè)計(jì)算任務(wù)間并不存在執(zhí)行順序,而現(xiàn)有技術(shù)中,仍按接收計(jì)算任務(wù) 的順序執(zhí)行計(jì)算任務(wù),那么將造成計(jì)算任務(wù)的執(zhí)行效率低下。在本申請(qǐng)實(shí)施例中,當(dāng)多個(gè)計(jì)算任務(wù)不存在執(zhí)行順序時(shí),可使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。具體的,當(dāng)多個(gè)計(jì)算任務(wù)分配至不同的執(zhí)行設(shè)備時(shí),可使不同的執(zhí)行設(shè)備同時(shí)執(zhí)行多個(gè)計(jì)算任務(wù),而當(dāng)多個(gè)計(jì)算任務(wù)分配至同一執(zhí)行設(shè)備時(shí),可使執(zhí)行設(shè)備分配不同的進(jìn)程為多個(gè)計(jì)算任務(wù),從而同時(shí)執(zhí)行多個(gè)計(jì)算任務(wù)。本申請(qǐng)還公開(kāi)了一種執(zhí)行計(jì)算任務(wù)的方法,如圖5所示,所述方法至少包括:步驟s51:判斷一計(jì)算任務(wù)的輸出是否作為多個(gè)計(jì)算任務(wù)的輸入;如果是,執(zhí)行步驟s52;否則,結(jié)束流程;在分布式計(jì)算平臺(tái)中,如圖6所示,一計(jì)算任務(wù)的輸出結(jié)果可作為多個(gè)計(jì)算任務(wù)的輸入,此時(shí)這多個(gè)計(jì)算任務(wù)的輸入實(shí)際是相同的。由于在實(shí)際應(yīng)用中,計(jì)算任務(wù)n0輸出結(jié)果的數(shù)據(jù)量較大,因此一般將輸出結(jié)果的存儲(chǔ)地址作為數(shù)據(jù)源,輸入至n1至nn多個(gè)計(jì)算任務(wù)。因此,在現(xiàn)有技術(shù)中,執(zhí)行設(shè)備在執(zhí)行n1至nn多個(gè)計(jì)算任務(wù)時(shí),仍需多次從同一數(shù)據(jù)源讀取數(shù)據(jù)。步驟s52:獲取所述計(jì)算任務(wù)輸出的數(shù)據(jù)源,且從所述數(shù)據(jù)源讀取數(shù)據(jù);在本申請(qǐng)實(shí)施例中,仍沿用上述舉例,即從上述數(shù)據(jù)源讀取計(jì)算任務(wù)n0的輸出結(jié)果。步驟s53:輸出所讀取數(shù)據(jù)至所述多個(gè)計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù)據(jù)執(zhí)行計(jì)算任務(wù)。在本申請(qǐng)實(shí)施例中,仍沿用上述舉例,即將所讀取的輸出結(jié)果分別輸出至計(jì)計(jì)算任務(wù)n0至nn的執(zhí)行設(shè)備。由上可見(jiàn),采用本申請(qǐng)實(shí)施例中的方法,對(duì)于n1至nnn個(gè)計(jì)算任務(wù),只需讀取一次數(shù)據(jù),相對(duì)于現(xiàn)有技術(shù)中的,多次讀取數(shù)據(jù),提高了分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。在本申請(qǐng)的另一可行實(shí)施例中,如圖7所示,上述所有實(shí)施例中的方法,還可包括:步驟s71:判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;如果存在,執(zhí)行步驟s72;否則,執(zhí)行步驟s73;在本申請(qǐng)實(shí)施例中,仍沿用上述舉例,即判斷計(jì)算任務(wù)n1至nn,n個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序。步驟s72:使執(zhí)行設(shè)備按順序執(zhí)行多個(gè)計(jì)算任務(wù);步驟s73:使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。在本申請(qǐng)實(shí)施例中,仍沿用上述舉例,即使計(jì)算任務(wù)n1至nn的執(zhí)行設(shè)備,并列執(zhí)行n個(gè)計(jì)算任務(wù)。由于在現(xiàn)有技術(shù)中,執(zhí)行設(shè)備一般按順序執(zhí)行計(jì)算任務(wù),而在本申請(qǐng)中,當(dāng)多個(gè)計(jì)算任務(wù)間不存在執(zhí)行順序時(shí),使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù),從而提高分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。在本申請(qǐng)的另一可行實(shí)施例中,以分布式計(jì)算平臺(tái)輸入t1、t2、t3以及t4四個(gè)計(jì)算任務(wù)為例,詳細(xì)說(shuō)明本申請(qǐng)的過(guò)程:假設(shè)分布式計(jì)算平臺(tái)輸入t1、t2、t3以及t4四個(gè)計(jì)算任務(wù),且計(jì)算任務(wù)t1具體如下:“createtabletest__00asselect*fromtbcdm.dim_tb_itmwhereds=’20150904’anditem_id=0;”計(jì)算任務(wù)t2具體如下:“createtabletest__01asselect*fromtbcdm.dim_tb_itmwhereds=’20150904’anditem_id=1;”計(jì)算任務(wù)t3具體如下:“createtabletest__02asselect*fromtbcdm.dim_tb_itmwhereds=’20150904’anditem_id=2;”計(jì)算任務(wù)t4具體如下:“createtabletestasselectitem_idfrom(select*fromtest_00unionallselect*fromtest_01unionallselect*fromtest_02)pargroupbyitem_id分別對(duì)計(jì)算任務(wù)t1、t2、t3以及t4進(jìn)行解析,可獲得計(jì)算任務(wù)t1的數(shù)據(jù)源為“tbcdm.dim_tb_itm”,過(guò)濾條件為“ds=’20150904’anditem_id=0”;計(jì)算任務(wù)t2的數(shù)據(jù)源為“tbcdm.dim_tb_itm”,過(guò)濾條件為“ds=’20150904’anditem_id=1”;計(jì)算任務(wù)t3的數(shù)據(jù)源為“tbcdm.dim_tb_itm”,過(guò)濾條件為“ds=’20150904’anditem_id=2”;計(jì)算任務(wù)t4的數(shù)據(jù)源為“select*fromtest_00unionallselect*fromtest_01unionallselect*fromtest_02”,過(guò)濾條件為“groupbyitem_id”。由上可見(jiàn),計(jì)算任務(wù)t1、t2以及t3的數(shù)據(jù)源相同,均為“tbcdm.dim_tb_itm”。因此,在本申請(qǐng)實(shí)施例中,可讀取“tbcdm.dim_tb_itm”處所存儲(chǔ)的數(shù)據(jù);然后,分別采用計(jì)算任務(wù)t1的過(guò)濾條件““ds=’20150904’anditem_id=0”、計(jì)算任務(wù)t2的過(guò)濾條件“ds=’20150904’anditem_id=1”、計(jì)算任務(wù)t3的過(guò)濾條件“ds=’20150904’anditem_id=2”對(duì)所讀取的數(shù)據(jù)進(jìn)行過(guò)濾,獲得計(jì)算任務(wù)t1的目標(biāo)數(shù)據(jù)、計(jì)算任務(wù)t2的目標(biāo)數(shù)據(jù)以及計(jì)算任務(wù)t3的目標(biāo)數(shù)據(jù)。最后,將計(jì)算任務(wù)t1、t2以及t3的目標(biāo)數(shù)據(jù)分別寫(xiě)入至執(zhí)行設(shè)備的存儲(chǔ)空間,所述執(zhí)行設(shè)備將直接利用目標(biāo)數(shù)據(jù),執(zhí)行計(jì)算任務(wù)t1、t2以及t3。同時(shí),由于計(jì)算任務(wù)t1、t2、t3相互間并不存在執(zhí)行順序,因此,可使執(zhí)行設(shè)備并列執(zhí)行上述三個(gè)計(jì)算任務(wù)。而對(duì)于計(jì)算任務(wù)t4,可直接將t4輸出至預(yù)先分配的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備按照現(xiàn)有技術(shù)中的方法,執(zhí)行計(jì)算任務(wù)t4。由于在本申請(qǐng)實(shí)施例中,可一次讀取t1、t2、t3三個(gè)計(jì)算任務(wù)的數(shù)據(jù)源,且可同時(shí)執(zhí)行上述三個(gè)計(jì)算任務(wù),相對(duì)于現(xiàn)有技術(shù)中的方法,三次讀取數(shù)據(jù)源,且t1、t2、t3三個(gè)計(jì)算任務(wù)按順序執(zhí)行,可提高分布式計(jì)算平臺(tái),執(zhí)行任務(wù)的效率。通過(guò)以上的方法實(shí)施例的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:只讀存儲(chǔ)器(rom)、隨機(jī)存取存儲(chǔ)器(ram)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。與本申請(qǐng)?zhí)峁┑膱?zhí)行計(jì)算任務(wù)的方法實(shí)施例相對(duì)應(yīng)的,本申請(qǐng)還提供了一種執(zhí)行計(jì)算任務(wù)的裝置,如圖8所示,所述裝置至少包括:解析模塊81,用于解析所接收的多個(gè)計(jì)算任務(wù),獲取每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;第一判斷模塊82,用于判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);讀取模塊83,用于當(dāng)存在數(shù)據(jù)源相同的計(jì)算任務(wù)時(shí),從相同數(shù)據(jù)源讀取數(shù)據(jù);第一輸出模塊84,用于輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù)據(jù)執(zhí)行計(jì)算任務(wù)。由以上技術(shù)方案可見(jiàn),在本申請(qǐng)實(shí)施例中,首先解析所接收的多個(gè)計(jì)算任務(wù),獲得每個(gè)計(jì)算任務(wù)的數(shù)據(jù)源;然后判斷多個(gè)計(jì)算任務(wù)中,是否存在數(shù)據(jù)源相同的計(jì)算任務(wù);如果存在,從相同數(shù)據(jù)源讀取數(shù)據(jù);最后,輸出所讀取數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備;由于執(zhí)行設(shè)備可直接根據(jù)所讀取數(shù)據(jù)執(zhí)行任務(wù),因此,采用本申請(qǐng)實(shí)施例所公開(kāi)的裝置,對(duì)于具有相同數(shù)據(jù)源的計(jì)算任務(wù),僅需從數(shù)據(jù)源讀取一次數(shù)據(jù)即可,相比現(xiàn)有技術(shù)中的多次讀取數(shù)據(jù)的方式,提高了分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。在本申請(qǐng)的又一可行實(shí)施例中,上述所有實(shí)施例中的裝置還可包括:第二判斷模塊,用于判斷據(jù)源相同的計(jì)算任務(wù)中,是否存在過(guò)濾條件,所述過(guò)濾條件用于對(duì)讀取的數(shù)據(jù)進(jìn)行過(guò)濾;過(guò)濾模塊,用于當(dāng)所述計(jì)算任務(wù)中,存在過(guò)濾條件時(shí),利用所述過(guò)濾條件對(duì)所讀取的數(shù)據(jù)進(jìn)行過(guò)濾,獲得目標(biāo)數(shù)據(jù)。由上可見(jiàn),在本申請(qǐng)實(shí)施例中,可對(duì)數(shù)據(jù)源讀取的數(shù)據(jù)進(jìn)行過(guò)濾。在本申請(qǐng)的另一可行實(shí)施例中,上述所有實(shí)施例中的所讀取數(shù)據(jù)包括目標(biāo)數(shù)據(jù),所述第一輸出模塊,包括:目標(biāo)數(shù)據(jù)輸出單元,用于輸出所述目標(biāo)數(shù)據(jù)至相同數(shù)據(jù)源計(jì)算任務(wù)的執(zhí)行設(shè)備。在本申請(qǐng)實(shí)施例中,執(zhí)行設(shè)備可直接對(duì)目標(biāo)數(shù)據(jù)進(jìn)行計(jì)算,從而提高執(zhí)行計(jì)算任務(wù)的效率。在本申請(qǐng)的又一可行實(shí)施例中,上述所有實(shí)施例中的裝置還可包括:第三判斷模塊,用于判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;第一并列執(zhí)行模塊,用于當(dāng)多個(gè)計(jì)算任務(wù)間不存在執(zhí)行順序時(shí),使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。由上可見(jiàn),采用本申請(qǐng)實(shí)施例所公開(kāi)的裝置,可并列執(zhí)行多個(gè)計(jì)算任務(wù),從而提高分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。與本申請(qǐng)?zhí)峁┑膱?zhí)行計(jì)算任務(wù)的方法實(shí)施例相對(duì)應(yīng)的,本申請(qǐng)又提供了一種執(zhí)行計(jì)算任務(wù)的裝置,所述裝置至少包括:第四判斷模塊,用于判斷一計(jì)算任務(wù)的輸出是否作為多個(gè)計(jì)算任務(wù)的輸入;獲取讀取模塊,用于當(dāng)一計(jì)算任務(wù)的輸出作為多個(gè)計(jì)算任務(wù)的輸入時(shí),獲取所述計(jì)算任務(wù)輸出的數(shù)據(jù)源,且從所述數(shù)據(jù)源讀取數(shù)據(jù);第二輸出模塊,用于輸出所讀取數(shù)據(jù)至所述多個(gè)計(jì)算任務(wù)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備將根據(jù)所讀取數(shù)據(jù)執(zhí)行計(jì)算任務(wù)。由上可見(jiàn),采用本申請(qǐng)實(shí)施例中的方法,對(duì)于多個(gè)計(jì)算任務(wù),只需讀取一次數(shù)據(jù),相對(duì)于現(xiàn)有技術(shù)中的,多次讀取數(shù)據(jù),提高了分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。在本申請(qǐng)的又一可行實(shí)施例中,上述所有實(shí)施例中的裝置還可包括:第五判斷模塊,用于判斷多個(gè)計(jì)算任務(wù)間是否存在執(zhí)行順序;第二并列執(zhí)行模塊,用于當(dāng)多個(gè)計(jì)算任務(wù)間不存在執(zhí)行順序時(shí),使執(zhí)行設(shè)備并列執(zhí)行多個(gè)計(jì)算任務(wù)。由上可見(jiàn),采用本申請(qǐng)實(shí)施例所公開(kāi)的裝置,可并列執(zhí)行多個(gè)計(jì)算任務(wù),從而提高分布式計(jì)算平臺(tái)執(zhí)行任務(wù)的效率。本申請(qǐng)還公開(kāi)了一種執(zhí)行計(jì)算任務(wù)的系統(tǒng),如圖9所示,所述系統(tǒng)包括上述所有實(shí)施例中的執(zhí)行計(jì)算任務(wù)的裝置91以及執(zhí)行設(shè)備92;在本申請(qǐng)實(shí)施例中,執(zhí)行計(jì)算任務(wù)的裝置91的功能可具體由分布式計(jì)算平臺(tái)的主設(shè)備實(shí)現(xiàn),執(zhí)行設(shè)備92的功能可具體由分布式計(jì)算平臺(tái)的從設(shè)備實(shí)現(xiàn);執(zhí)行設(shè)備92可根據(jù)執(zhí)行計(jì)算任務(wù)的裝置91所輸出的讀取數(shù)據(jù),執(zhí)行計(jì)算任務(wù)。采用本申請(qǐng)實(shí)施例中所公開(kāi)的執(zhí)行計(jì)算任務(wù)的系統(tǒng),可提高分布式計(jì)算平臺(tái)執(zhí)行計(jì)算任務(wù)的效率。需要說(shuō)明的是,在本文中,諸如“第一”和“第二”等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。以上所述僅是本申請(qǐng)的具體實(shí)施方式,使本領(lǐng)域技術(shù)人員能夠理解或?qū)崿F(xiàn)本申請(qǐng)。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本申請(qǐng)的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請(qǐng)將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1