Spark任務(wù)執(zhí)行優(yōu)化技術(shù)研究
發(fā)布時(shí)間:2021-02-17 10:23
Spark作為一種基于內(nèi)存的分布式計(jì)算框架,已經(jīng)廣泛應(yīng)用于大數(shù)據(jù)處理系統(tǒng)中。它延續(xù)了Hadoop MapReduce的計(jì)算模型,但是其采用了基于內(nèi)存的彈性分布式數(shù)據(jù)集RDD來進(jìn)行數(shù)據(jù)處理,有效地避免了Hadoop MapReduce計(jì)算過程中的大量磁盤I/O操作,提高了系統(tǒng)執(zhí)行性能。然而目前的Spark在Shuffle過程中仍然存在著不足:(1)Shuffle Write階段中的分區(qū)傾斜問題;(2)Shuffle Read階段中的計(jì)算節(jié)點(diǎn)負(fù)載不均衡問題。本文針對目前Spark計(jì)算系統(tǒng)中存在的不足,對Spark Shuffle過程中的任務(wù)執(zhí)行優(yōu)化技術(shù)進(jìn)行研究。首先,針對Shuffle Write階段中的分區(qū)傾斜問題,本文提出了一種Spark均衡數(shù)據(jù)分區(qū)器BSPartitioner(Balanced Spark Partitioner)。通過深入分析Shuffle Write階段的中間數(shù)據(jù)分區(qū)特性,建立了Spark Shuffle中間數(shù)據(jù)均衡分區(qū)模型,該模型以最小化分區(qū)傾斜度為目標(biāo),尋找一種Shuffle中間數(shù)據(jù)均衡分區(qū)策略;谠撃P,本文設(shè)計(jì)并實(shí)現(xiàn)了BSPartitioner數(shù)據(jù)均衡分...
【文章來源】:東南大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:79 頁
【學(xué)位級別】:碩士
【部分圖文】:
HadoopMapReduce執(zhí)行架構(gòu)
第1章引言3起的過程稱為Shuffle。在Shuffle過程中,MapTask輸出中間數(shù)據(jù)并將其寫到緩沖區(qū)中,每當(dāng)緩沖區(qū)中的數(shù)據(jù)量達(dá)到閾值時(shí),緩沖區(qū)中的數(shù)據(jù)會溢寫到本地磁盤中并形成一個(gè)臨時(shí)的Spill文件。因此在MapTask執(zhí)行結(jié)束后,可能會存在多個(gè)Spill文件。為了減少最終生成的臨時(shí)文件數(shù)目,在MapTask完成前,所有的Spill文件將會被歸并排序成一個(gè)數(shù)據(jù)文件。在MapTask輸出中間數(shù)據(jù)后,ReduceTask會通過網(wǎng)絡(luò)來拉取對應(yīng)的數(shù)據(jù)并進(jìn)行后續(xù)的計(jì)算。在Spark中,寬依賴會引發(fā)Shuffle操作,該操作會被劃分成ShuffleWrite和ShuffleRead兩個(gè)階段并分別在兩個(gè)Stage中順序執(zhí)行。其中,ShuffleWrite階段輸出中間數(shù)據(jù)并根據(jù)當(dāng)前所采用的數(shù)據(jù)分區(qū)器對中間數(shù)據(jù)進(jìn)行分區(qū);ShuffleRead階段負(fù)責(zé)啟動ShuffleReadTask來拉取已分區(qū)的中間數(shù)據(jù)并生成相應(yīng)的Partition,圖1-3描述了SparkShuffle操作的基本架構(gòu)。由于Shuffle過程涉及到大量的磁盤讀寫操作以及網(wǎng)絡(luò)傳輸操作,因此Shuffle操作的性能高低直接影響基于MapReduce計(jì)算框架的性能和吞吐量。圖1-4描述了在20GB輸入數(shù)據(jù)下,圖1-2對應(yīng)的SparkJob在執(zhí)行時(shí)各個(gè)算子的執(zhí)行時(shí)間以及處理的數(shù)據(jù)量,其中算子groupByKey和join會帶來Shuffle操作,實(shí)驗(yàn)結(jié)果表明,Shuffle操作無疑是影響Spark執(zhí)行性能的關(guān)鍵因素。MapTaskbucketbucketbucketMapTaskbucketbucketbucketMapTaskbucketbucketbucketShuffleReadPartitionPartitionPartition………ShuffleWriteReducerReducerReducer…圖1-3SparkShuffle基本架構(gòu)
eadPartition放置算法SPOC。該算法采用兩階段優(yōu)化的方式獲取一種適宜的Partition放置策略,進(jìn)而實(shí)現(xiàn)ShuffleRead階段中計(jì)算節(jié)點(diǎn)負(fù)載均衡,進(jìn)一步提高了Spark計(jì)算系統(tǒng)的執(zhí)行效率。最后,將本文的研究成果集成到現(xiàn)有的Spark計(jì)算系統(tǒng)中并進(jìn)行相關(guān)的性能測試和分析。系統(tǒng)測試和分析(第5章)3系統(tǒng)實(shí)現(xiàn)部分SparkShuffle任務(wù)執(zhí)行優(yōu)化Spark均衡數(shù)據(jù)分區(qū)器的設(shè)計(jì)與實(shí)現(xiàn)(第3章)基于代價(jià)的ShuffleReadPartition放置算法設(shè)計(jì)(第4章)理論研究部分SparkShuffleWrite優(yōu)化SparkShuffleRead優(yōu)化12系統(tǒng)集成驗(yàn)證圖1-7研究內(nèi)容交互關(guān)系圖(1)Spark均衡數(shù)據(jù)分區(qū)器研究深入分析了ShuffleWrite階段的數(shù)據(jù)分區(qū)特性,建立了SparkShuffle中間數(shù)據(jù)均衡分區(qū)模型。通過將Shuffle中間數(shù)據(jù)均衡分區(qū)問題轉(zhuǎn)換為經(jīng)典的List-Scheduling問題,提出一種Shuffle中間數(shù)據(jù)均衡分區(qū)算法。最后,設(shè)計(jì)并實(shí)現(xiàn)一種Spark均衡數(shù)據(jù)分區(qū)器BSPartitioner,有效地實(shí)現(xiàn)了Shuffle中間數(shù)據(jù)的均衡分區(qū)。(2)研究基于代價(jià)的SparkShufflePartition放置算法分析ShuffleRead階段中的Partition放置方式,將Partition放置問題轉(zhuǎn)化為計(jì)算節(jié)點(diǎn)負(fù)載均衡問題,建立了ShuffleRead階段計(jì)算節(jié)點(diǎn)負(fù)載均衡模型;趩l(fā)式方法,提出了一種
本文編號:3037848
【文章來源】:東南大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:79 頁
【學(xué)位級別】:碩士
【部分圖文】:
HadoopMapReduce執(zhí)行架構(gòu)
第1章引言3起的過程稱為Shuffle。在Shuffle過程中,MapTask輸出中間數(shù)據(jù)并將其寫到緩沖區(qū)中,每當(dāng)緩沖區(qū)中的數(shù)據(jù)量達(dá)到閾值時(shí),緩沖區(qū)中的數(shù)據(jù)會溢寫到本地磁盤中并形成一個(gè)臨時(shí)的Spill文件。因此在MapTask執(zhí)行結(jié)束后,可能會存在多個(gè)Spill文件。為了減少最終生成的臨時(shí)文件數(shù)目,在MapTask完成前,所有的Spill文件將會被歸并排序成一個(gè)數(shù)據(jù)文件。在MapTask輸出中間數(shù)據(jù)后,ReduceTask會通過網(wǎng)絡(luò)來拉取對應(yīng)的數(shù)據(jù)并進(jìn)行后續(xù)的計(jì)算。在Spark中,寬依賴會引發(fā)Shuffle操作,該操作會被劃分成ShuffleWrite和ShuffleRead兩個(gè)階段并分別在兩個(gè)Stage中順序執(zhí)行。其中,ShuffleWrite階段輸出中間數(shù)據(jù)并根據(jù)當(dāng)前所采用的數(shù)據(jù)分區(qū)器對中間數(shù)據(jù)進(jìn)行分區(qū);ShuffleRead階段負(fù)責(zé)啟動ShuffleReadTask來拉取已分區(qū)的中間數(shù)據(jù)并生成相應(yīng)的Partition,圖1-3描述了SparkShuffle操作的基本架構(gòu)。由于Shuffle過程涉及到大量的磁盤讀寫操作以及網(wǎng)絡(luò)傳輸操作,因此Shuffle操作的性能高低直接影響基于MapReduce計(jì)算框架的性能和吞吐量。圖1-4描述了在20GB輸入數(shù)據(jù)下,圖1-2對應(yīng)的SparkJob在執(zhí)行時(shí)各個(gè)算子的執(zhí)行時(shí)間以及處理的數(shù)據(jù)量,其中算子groupByKey和join會帶來Shuffle操作,實(shí)驗(yàn)結(jié)果表明,Shuffle操作無疑是影響Spark執(zhí)行性能的關(guān)鍵因素。MapTaskbucketbucketbucketMapTaskbucketbucketbucketMapTaskbucketbucketbucketShuffleReadPartitionPartitionPartition………ShuffleWriteReducerReducerReducer…圖1-3SparkShuffle基本架構(gòu)
eadPartition放置算法SPOC。該算法采用兩階段優(yōu)化的方式獲取一種適宜的Partition放置策略,進(jìn)而實(shí)現(xiàn)ShuffleRead階段中計(jì)算節(jié)點(diǎn)負(fù)載均衡,進(jìn)一步提高了Spark計(jì)算系統(tǒng)的執(zhí)行效率。最后,將本文的研究成果集成到現(xiàn)有的Spark計(jì)算系統(tǒng)中并進(jìn)行相關(guān)的性能測試和分析。系統(tǒng)測試和分析(第5章)3系統(tǒng)實(shí)現(xiàn)部分SparkShuffle任務(wù)執(zhí)行優(yōu)化Spark均衡數(shù)據(jù)分區(qū)器的設(shè)計(jì)與實(shí)現(xiàn)(第3章)基于代價(jià)的ShuffleReadPartition放置算法設(shè)計(jì)(第4章)理論研究部分SparkShuffleWrite優(yōu)化SparkShuffleRead優(yōu)化12系統(tǒng)集成驗(yàn)證圖1-7研究內(nèi)容交互關(guān)系圖(1)Spark均衡數(shù)據(jù)分區(qū)器研究深入分析了ShuffleWrite階段的數(shù)據(jù)分區(qū)特性,建立了SparkShuffle中間數(shù)據(jù)均衡分區(qū)模型。通過將Shuffle中間數(shù)據(jù)均衡分區(qū)問題轉(zhuǎn)換為經(jīng)典的List-Scheduling問題,提出一種Shuffle中間數(shù)據(jù)均衡分區(qū)算法。最后,設(shè)計(jì)并實(shí)現(xiàn)一種Spark均衡數(shù)據(jù)分區(qū)器BSPartitioner,有效地實(shí)現(xiàn)了Shuffle中間數(shù)據(jù)的均衡分區(qū)。(2)研究基于代價(jià)的SparkShufflePartition放置算法分析ShuffleRead階段中的Partition放置方式,將Partition放置問題轉(zhuǎn)化為計(jì)算節(jié)點(diǎn)負(fù)載均衡問題,建立了ShuffleRead階段計(jì)算節(jié)點(diǎn)負(fù)載均衡模型;趩l(fā)式方法,提出了一種
本文編號:3037848
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3037848.html
最近更新
教材專著