Spark性能調(diào)優(yōu)篇一之任務提交參數(shù)調(diào)整

寫在前面的一些”廢話“:

最近在做spark的項目瑰艘,雖然項目基本功能都實現(xiàn)了像屋,但是在真正的成產(chǎn)環(huán)境中去運行崭放,發(fā)現(xiàn)程序運行效率異常緩慢鬼吵;迫于無奈(實際是自己都不忍直視了)扣甲,所以決定對程序做一番優(yōu)化操作。在網(wǎng)上查看了不上關(guān)于spark程序的優(yōu)化方法,但是都比較分散不夠全面琉挖,所以決定就自己編寫的基于Java的spark程序启泣,記錄一下我所做過的一些優(yōu)化操作,加深印象方面以后的項目調(diào)優(yōu)使用示辈。這是一個Spark系列的優(yōu)化操作寥茫,包括了很多方面,歡迎大家一塊討論學習矾麻。好了纱耻,廢話好像有點多,下面開始進入正題:

關(guān)于spark最基本的優(yōu)化就是盡量給spark作業(yè)分配盡量多的資源供spark程序使用险耀,一般只有在拿不到更多的資源供spark作業(yè)使用的時候膝迎,才會去考慮在其他方面對spark作業(yè)進行優(yōu)化(好像有點像廢話)。那么本片文章中介紹的調(diào)優(yōu)主要是幾個在提交任務的時候設(shè)定的參數(shù)胰耗,在介紹本文的內(nèi)容之前限次,首先提出幾個問題:

問題一:有哪些資源可以分配給spark作業(yè)使用?

問題二:在什么地方分配資源給spark作業(yè)柴灯?

問題三:為什么分配了這些資源以后卖漫,我們的spark作業(yè)的性能就會得到提升呢?

接下來我們就圍繞這三個問題展開討論赠群。

第一個問題:那些資源可以分配給spark作業(yè)羊始?

答案:executor個數(shù),cpu per exector(每個executor可使用的CPU個數(shù))查描,memory per exector(每個executor可使用的內(nèi)存)突委,driver memory

第二個問題:我們在什么地方分配這些資源?

答案:很簡單冬三,就是在我們提交spark作業(yè)的時候的腳本中設(shè)定匀油,具體如下(這里以我的項目為例):

/usr/local/spark/bin/spark-submit \

--class ?com.xingyun.test.WordCountCluster \

--num-executors ? ?3 ? ? ? ? ? ? \*配置executor的數(shù)量 *\

--driver-memory ? ?100m ? ? ? \*配置driver的內(nèi)存(影響不大)*\

--executor-memory ? 100m ? \*配置每個executor的內(nèi)存大小 *\

--executor-cores ? 3 ? ? ? ? ? ? ? \*配置每個executor的cpu core數(shù)量 *\

/usr/local/SparkTest-0.0.1-SNAPSHOT-jar-with-dependencies.jar ?\

我們該如何設(shè)定這些參數(shù)的大小呢?下面分兩種情況討論勾笆。

case1:把spark作業(yè)提交到Spark Standalone上面敌蚜。一般自己知道自己的spark測試集群的機器情況。舉個例子:比如我們的測試集群的機器為每臺4G內(nèi)存窝爪,2個CPU core弛车,5臺機器。這里以可以申請到最大的資源為例蒲每,那么 ?--num-executors ?參數(shù)就設(shè)定為 5纷跛,那么每個executor平均分配到的資源為:--executor-memory 參數(shù)設(shè)定為4G,--executor-cores 參數(shù)設(shè)定為 2 邀杏。

case2:把spark作業(yè)提交到Y(jié)arn集群上去贫奠。那就得去看看要提交的資源隊列中大概還有多少資源可以背調(diào)度。舉個例子:假如可調(diào)度的資源配置為:500G內(nèi)存,100個CPU core叮阅,50臺機器刁品。?--num-executors ?參數(shù)就設(shè)定為 50泣特,那么每個executor平均分配到的資源為:--executor-memory 參數(shù)設(shè)定為 10G浩姥,--executor-cores 參數(shù)設(shè)定為 2

第三個問題:為什么分配了這些資源以后,我們的spark作業(yè)的性能就會得到提升呢状您?

首先勒叠,先來看一張圖:

spark任務調(diào)度簡化圖

Spark程序啟動的時候,SparkContext膏孟,DAGScheduler眯分,TaskScheduler會將我們的RDD算子切割成一個個的Taskset(一系列的task任務),然后提交到Application的executor上面去執(zhí)行柒桑。

基于此有如下兩點說明:

第一:增加每個executor的cpu core弊决,也是增加了執(zhí)行的并行能力。假定原本20個executor魁淳,每個2個cpu core飘诗。能夠并行執(zhí)行的task數(shù)量,就是40個task〗绻洌現(xiàn)在每個executor的cpu core昆稿,增加到了5個。能夠并行執(zhí)行的task數(shù)量息拜,就是100個task溉潭。執(zhí)行的速度,提升了2.5倍少欺。增加Exector的道理也是一樣的喳瓣。第二:增加每個executor的內(nèi)存量。

第二:增加了內(nèi)存量以后赞别,對性能的提升有兩點夫椭。

? ? ? ? 1.如果需要對RDD產(chǎn)生的結(jié)果進行cache操作,那么內(nèi)存越大氯庆,我們可以緩存的內(nèi)容就越多蹭秋,寫入磁盤的數(shù)據(jù)就越少。從而減小了磁盤的IO堤撵。

? ? ? ?2.對于task的執(zhí)行仁讨,會創(chuàng)建很多的臨時對象,這些對象全部都在內(nèi)存中实昨,如果內(nèi)存比較小洞豁,可能會導致頻繁的GC(minor GC,full GC),從而導致程序運行緩慢,將內(nèi)存變大以后丈挟,會是的GC次數(shù)減少刁卜,從而提高了程序的運行速度。


本片文章到這里基本就完了曙咽,后面會不定期的更新關(guān)于spark調(diào)優(yōu)的一些文章蛔趴,希望可以一塊討論學習。歡迎關(guān)注例朱。

如需轉(zhuǎn)載孝情,請注明:

z小趙??Spark性能調(diào)優(yōu)篇之任務提交參數(shù)調(diào)整

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市洒嗤,隨后出現(xiàn)的幾起案子箫荡,更是在濱河造成了極大的恐慌,老刑警劉巖渔隶,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羔挡,死亡現(xiàn)場離奇詭異,居然都是意外死亡间唉,警方通過查閱死者的電腦和手機绞灼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來终吼,“玉大人镀赌,你說我怎么就攤上這事〖使颍” “怎么了商佛?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長姆打。 經(jīng)常有香客問我良姆,道長,這世上最難降的妖魔是什么幔戏? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任玛追,我火速辦了婚禮,結(jié)果婚禮上闲延,老公的妹妹穿的比我還像新娘痊剖。我一直安慰自己,他們只是感情好垒玲,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布陆馁。 她就那樣靜靜地躺著,像睡著了一般合愈。 火紅的嫁衣襯著肌膚如雪叮贩。 梳的紋絲不亂的頭發(fā)上击狮,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音益老,去河邊找鬼彪蓬。 笑死,一個胖子當著我的面吹牛捺萌,可吹牛的內(nèi)容都是我干的档冬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼互婿,長吁一口氣:“原來是場噩夢啊……” “哼捣郊!你這毒婦竟也來了辽狈?” 一聲冷哼從身側(cè)響起慈参,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎刮萌,沒想到半個月后驮配,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡着茸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年壮锻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涮阔。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡猜绣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敬特,到底是詐尸還是另有隱情掰邢,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布伟阔,位于F島的核電站辣之,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏皱炉。R本人自食惡果不足惜怀估,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望合搅。 院中可真熱鬧多搀,春花似錦、人聲如沸灾部。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梳猪。三九已至麻削,卻和暖如春蒸痹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呛哟。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工叠荠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扫责。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓榛鼎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鳖孤。 傳聞我的和親對象是個殘疾皇子者娱,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1 前言 在大數(shù)據(jù)計算領(lǐng)域,Spark已經(jīng)成為了越來越流行苏揣、越來越受歡迎的計算平臺之一黄鳍。Spark的功能涵蓋了大數(shù)...
    wisfern閱讀 2,434評論 3 39
  • 調(diào)優(yōu)之前是將功能實現(xiàn)...然后算法優(yōu)化,設(shè)計優(yōu)化,再是spark調(diào)優(yōu)!,需得一步一步來,不得直接越過,直接調(diào)優(yōu)! ...
    終生學習丶閱讀 5,471評論 0 12
  • Spark的性能調(diào)優(yōu)實際上是由很多部分組成的,不是調(diào)節(jié)幾個參數(shù)就可以立竿見影提升作業(yè)性能的平匈。我們需要根據(jù)不同的業(yè)務...
    東皇Amrzs閱讀 1,619評論 0 17
  • 1 數(shù)據(jù)傾斜調(diào)優(yōu) 1.1 調(diào)優(yōu)概述 有的時候框沟,我們可能會遇到大數(shù)據(jù)計算中一個最棘手的問題——數(shù)據(jù)傾斜,此時Spar...
    wisfern閱讀 2,933評論 0 23
  • 今天心情還好增炭,但愿一覺到天明忍燥!
    靜心凈力閱讀 135評論 0 0