[發(fā)明專利]一種Spark框架中Reduce任務(wù)執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202111497023.4 | 申請(qǐng)日: | 2021-12-09 |
| 公開(kāi)(公告)號(hào): | CN114168333A | 公開(kāi)(公告)日: | 2022-03-11 |
| 發(fā)明(設(shè)計(jì))人: | 付仲明;何夢(mèng)思;羅凌云;丁平尖;朱濤;萬(wàn)亞平 | 申請(qǐng)(專利權(quán))人: | 南華大學(xué) |
| 主分類號(hào): | G06F9/50 | 分類號(hào): | G06F9/50 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 趙菲 |
| 地址: | 421001 湖*** | 國(guó)省代碼: | 湖南;43 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 spark 框架 reduce 任務(wù) 執(zhí)行 方法 裝置 設(shè)備 存儲(chǔ) 介質(zhì) | ||
本申請(qǐng)公開(kāi)了一種Spark框架中Reduce任務(wù)執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),包括:獲取執(zhí)行應(yīng)用程序的Reduce任務(wù)所需Executor的第一數(shù)量,并確定Spark框架節(jié)點(diǎn)中可用Executor的第二數(shù)量;基于所述可用Executor之間的通信距離從所述第二數(shù)量個(gè)所述可用Executor中確定出所述第一數(shù)量個(gè)所述可用Executor,以得到與所述應(yīng)用程序?qū)?yīng)的具有低通信延遲的目標(biāo)Executor集合;其中,所述通信距離表征所述可用Executor所在節(jié)點(diǎn)之間的通信延遲;在相應(yīng)的Spark框架節(jié)點(diǎn)中啟動(dòng)所述目標(biāo)Executor集合中的所述可用Executor,以利用啟動(dòng)后的所述可用Executor執(zhí)行所述應(yīng)用程序的Reduce任務(wù)。可見(jiàn),本申請(qǐng)以通信距離作為主要考慮因素在Spark框架中將Executor啟動(dòng)在彼此靠近的節(jié)點(diǎn)上,以減少作業(yè)運(yùn)行時(shí)Reduce任務(wù)之間的通信延遲,提高任務(wù)執(zhí)行性能。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種Spark框架中Reduce任務(wù)執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù)
Spark中通常一個(gè)應(yīng)用程序包含一個(gè)或多個(gè)作業(yè),每個(gè)作業(yè)由許多個(gè)階段組成。在Spark的DAG(Directed Acyclic Graph)執(zhí)行模型中,階段按先后順序執(zhí)行。這意味著只有等前一個(gè)階段的任務(wù)都完成,后面階段的任務(wù)才能開(kāi)始。并且前一階段的輸出中間結(jié)果作為后一階段的輸入。由于階段的多個(gè)任務(wù)并行執(zhí)行,因此作業(yè)過(guò)程中需要大量的數(shù)據(jù)通信。特別地,如圖1所示,在Map階段,任務(wù)讀取數(shù)據(jù)塊經(jīng)過(guò)處理然后輸出中間數(shù)據(jù)到本地磁盤(pán)上。在Reduce階段,任務(wù)從所有Map任務(wù)中獲取它所屬部分中間數(shù)據(jù)進(jìn)行處理,這是多對(duì)多(All-to-All)的通信模式,數(shù)據(jù)傳輸延遲很大程度上決定了作業(yè)的運(yùn)行時(shí)間,并極大限制著Spark系統(tǒng)的性能。其中,Executor的啟動(dòng)位置對(duì)數(shù)據(jù)傳輸延遲有著很大影響,現(xiàn)有方法均不能取得最優(yōu)通信效率,使得任務(wù)執(zhí)行效率較低。
因此,如何提高Spark中多對(duì)多Reduce任務(wù)的執(zhí)行效率是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問(wèn)題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種Spark框架中Reduce任務(wù)執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),能夠減少作業(yè)運(yùn)行時(shí)Reduce任務(wù)之間的通信延遲,提高任務(wù)執(zhí)行性能。其具體方案如下:
本申請(qǐng)的第一方面提供了一種Spark框架中Reduce任務(wù)執(zhí)行方法,包括:
獲取執(zhí)行應(yīng)用程序的Reduce任務(wù)所需Executor的第一數(shù)量,并確定Spark框架節(jié)點(diǎn)中可用Executor的第二數(shù)量;
基于所述可用Executor之間的通信距離從所述第二數(shù)量個(gè)所述可用Executor中確定出所述第一數(shù)量個(gè)所述可用Executor,以得到與所述應(yīng)用程序?qū)?yīng)的具有低通信延遲的目標(biāo)Executor集合;其中,所述通信距離表征所述可用Executor所在節(jié)點(diǎn)之間的通信延遲;
在相應(yīng)的Spark框架節(jié)點(diǎn)中啟動(dòng)所述目標(biāo)Executor集合中的所述可用Executor,以利用啟動(dòng)后的所述可用Executor執(zhí)行所述應(yīng)用程序的Reduce任務(wù)。
可選的,所述確定Spark框架節(jié)點(diǎn)中可用Executor的第二數(shù)量,包括:
根據(jù)Spark框架中每個(gè)節(jié)點(diǎn)中的空閑資源及每個(gè)所需Executor的資源規(guī)格確定每個(gè)節(jié)點(diǎn)中的可用Executor數(shù)量,以得到Spark框架節(jié)點(diǎn)中所述可用Executor的所述第二數(shù)量。
可選的,所述基于所述可用Executor之間的通信距離從所述第二數(shù)量個(gè)所述可用Executor中確定出所述第一數(shù)量個(gè)所述可用Executor之前,還包括:
確定每?jī)蓚€(gè)所述可用Executor之間的網(wǎng)絡(luò)延遲和網(wǎng)絡(luò)帶寬,以得到每?jī)蓚€(gè)所述可用Executor之間的所述通信距離;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南華大學(xué),未經(jīng)南華大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111497023.4/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種Spark平臺(tái)性能自動(dòng)優(yōu)化方法
- 一種Spark作業(yè)的提交方法及裝置
- Spark性能優(yōu)化控制方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- spark任務(wù)的提交方法、裝置和服務(wù)器
- Spark任務(wù)的提交方法、系統(tǒng)、客戶端及服務(wù)端
- 一種提交并守護(hù)spark任務(wù)的方法及裝置
- 用戶任務(wù)的處理方法、裝置、電子設(shè)備和計(jì)算機(jī)可讀介質(zhì)
- Spark任務(wù)處理方法及裝置
- 一種Spark應(yīng)用部署管理方法及相關(guān)設(shè)備
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備、存儲(chǔ)介質(zhì)及程序產(chǎn)品
- MapReduce作業(yè)執(zhí)行時(shí)間預(yù)測(cè)方法
- 一種MapReduce系統(tǒng)
- MapReduce參數(shù)的動(dòng)態(tài)確定方法及裝置
- 一種面向Map/Reduce型海量數(shù)據(jù)處理平臺(tái)的作業(yè)調(diào)度方法
- 含有抑制劑的決策演化集膜結(jié)構(gòu)
- Reduce任務(wù)的調(diào)度方法及裝置
- 基于OpenFlow的資源調(diào)度方法、調(diào)度器及系統(tǒng)
- 一種針對(duì)MapReduce計(jì)算的數(shù)據(jù)保密方法及系統(tǒng)
- MapReduce數(shù)據(jù)計(jì)算加速方法及系統(tǒng)
- 一種執(zhí)行SQL任務(wù)的方法、設(shè)備以及存儲(chǔ)介質(zhì)
- 任務(wù)協(xié)作裝置及方法
- 用于量化任務(wù)價(jià)值的任務(wù)管理方法及裝置
- 用于運(yùn)行任務(wù)的系統(tǒng)、方法和裝置
- 一種分布式任務(wù)調(diào)度系統(tǒng)及方法
- 任務(wù)信息處理方法
- 一種同步任務(wù)異步執(zhí)行的方法和調(diào)度系統(tǒng)
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀介質(zhì)
- 一種自動(dòng)分配和推送的任務(wù)管理平臺(tái)及方法
- 程序執(zhí)行控制的裝置及方法、終端和存儲(chǔ)介質(zhì)
- 基于會(huì)話的任務(wù)待辦方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì)





