Spark任務(wù)調(diào)優(yōu)

0x01 數(shù)據(jù)序列化調(diào)優(yōu)

在進(jìn)行RDD緩存和Shuffle過程時抄邀,Spark會將數(shù)據(jù)對象進(jìn)行序列化宣鄙,所以選擇合適的序列化方法写烤,可以提高spark任務(wù)的性能焰扳。SPark提供了兩個序列化庫:
原生Java序列化:默認(rèn)情況下Spark使用Java序列化庫。Java序列化很靈活藐石,但是通常很慢即供,而且序列化格式很大。
Kryo序列化:與Java序列化相比于微,kryo速度更快(10倍左右)逗嫡,而且序列化格式更緊湊办素,序列化后數(shù)據(jù)包體更小。
使用:conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")祸穷,如果對象很大性穿,還需要增加spark.kryoserializer.buffer的大小。

0x02 內(nèi)存調(diào)優(yōu)

2.1調(diào)整數(shù)據(jù)結(jié)構(gòu)

1.如果Executor分配的內(nèi)存少于32G雷滚,可以設(shè)置JVM標(biāo)識:-XX:+UseCompressedOops將對象指針設(shè)為4字節(jié)而不是8字節(jié)需曾。

2.2 序列化RDD存儲

對于重復(fù)使用的RDD,將它緩存起來祈远。

2.3 垃圾收集優(yōu)化

1.Spark的Storage和Execution內(nèi)存占用由spark.memory.fraction控制呆万,應(yīng)該保證JVM的老年代的占用比例(NewRatio/(NewRatio+1))大于spark.memory.fraction。這樣能夠保證老年代有足夠的空間存放RDD緩存和Shuffle緩存的數(shù)據(jù)车份,避免頻繁Full GC谋减。
2.通過設(shè)置-XX:+UseG1GC來使用G1垃圾回收器。在堆內(nèi)存夠大時扫沼,需要通過設(shè)置-XX:G1HeapRegionSize來增大G1區(qū)域大小出爹。
3.如果任務(wù)是從HDFS中讀取數(shù)據(jù),通常每個HDFS數(shù)據(jù)塊(128M)對應(yīng)一個RDD的Partition(或者一個Task),解壓縮塊的大小通常是塊大小的2~3倍缎除,而且每個Executor通常同時運行3 ~ 4Task严就,所以我們可以估計Eden的大小為4*3*128MB。

0x03 其他調(diào)優(yōu)

3.1 并行度調(diào)優(yōu)

最理想的情況:Task數(shù)量和分配的CPU core數(shù)量相同器罐,這樣所有的Task一起運行梢为,差不多同一時間運行完畢。
但實際情況轰坊,有些task會運行的快一些铸董,有些task會運行的慢一點,如果task數(shù)量和cpu core的數(shù)量相同肴沫,就會導(dǎo)致一部分task運行完后粟害,這部分cpu core就空閑出來了,而且一直空閑到程序結(jié)束樊零,就造成了資源浪費我磁。所以官方推薦Task數(shù)量設(shè)置成CPU core數(shù)量的2~3倍。盡量讓cpu不要空閑驻襟,同時提高Task的并發(fā)度,可以減少每個task處理的數(shù)據(jù)量芋哭,從而也可以提升運行性能沉衣。

3.2 減少Task的內(nèi)存使用量

Spark自動根據(jù)文件的大小設(shè)定了運行在其上的map任務(wù)的數(shù)量,而對于reduce操作减牺,例如groupByKey和reduceByKey豌习,如果并行度過低存谎,導(dǎo)致Task中的數(shù)據(jù)集太大档礁,進(jìn)而導(dǎo)致OutofMemoryError憨攒。我們可以增加并行度,讓每個人物獲取到的數(shù)據(jù)集更小搀绣。而且多任務(wù)可以重用一個Executor JVM栋艳,任務(wù)的啟動成本很低恰聘,因此可以安全地增加并行度到集群中的core數(shù)量。

3.3 廣播大變量

當(dāng)RDD算子中引用了Driver中的一個大的對象吸占,每個Task都會持有這個大對象的序列化副本晴叨,導(dǎo)致Task序列化包體太大,可以通過Spark的廣播機(jī)制矾屯,將大對象廣播到每個Executor上兼蕊,這樣可以減少Task的序列化包體。一般來說大于20kb的Task有可能需要優(yōu)化件蚕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末孙技,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子排作,更是在濱河造成了極大的恐慌绪杏,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纽绍,死亡現(xiàn)場離奇詭異蕾久,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拌夏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門僧著,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人障簿,你說我怎么就攤上這事盹愚。” “怎么了站故?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵皆怕,是天一觀的道長。 經(jīng)常有香客問我西篓,道長愈腾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任岂津,我火速辦了婚禮虱黄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吮成。我一直安慰自己橱乱,他們只是感情好辜梳,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泳叠,像睡著了一般作瞄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上危纫,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天宗挥,我揣著相機(jī)與錄音,去河邊找鬼叶摄。 笑死属韧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛤吓。 我是一名探鬼主播宵喂,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼会傲!你這毒婦竟也來了锅棕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤淌山,失蹤者是張志新(化名)和其女友劉穎裸燎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泼疑,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡德绿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了退渗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片移稳。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖会油,靈堂內(nèi)的尸體忽然破棺而出个粱,到底是詐尸還是另有隱情,我是刑警寧澤翻翩,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布都许,位于F島的核電站,受9級特大地震影響嫂冻,放射性物質(zhì)發(fā)生泄漏胶征。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一絮吵、第九天 我趴在偏房一處隱蔽的房頂上張望弧烤。 院中可真熱鬧,春花似錦蹬敲、人聲如沸暇昂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽急波。三九已至,卻和暖如春瘪校,著一層夾襖步出監(jiān)牢的瞬間澄暮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工阱扬, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留泣懊,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓麻惶,卻偏偏與公主長得像馍刮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子窃蹋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

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

  • 前言 繼基礎(chǔ)篇講解了每個Spark開發(fā)人員都必須熟知的開發(fā)調(diào)優(yōu)與資源調(diào)優(yōu)之后卡啰,本文作為《Spark性能優(yōu)化指南》的...
    Alukar閱讀 873評論 0 2
  • 1 前言 在大數(shù)據(jù)計算領(lǐng)域,Spark已經(jīng)成為了越來越流行警没、越來越受歡迎的計算平臺之一匈辱。Spark的功能涵蓋了大數(shù)...
    wisfern閱讀 2,438評論 3 39
  • 原文:https://tech.meituan.com/spark-tuning-basic.html Spark...
    code_solve閱讀 1,213評論 0 10
  • 從遠(yuǎn)古時代起,人類進(jìn)化過程中的自然分工杀迹,決定了男女有別亡脸。 女性的情感訴求,是通過傾聽树酪,認(rèn)同浅碾,交流獲得,所以女性與女...
    唐薇閱讀 398評論 3 0
  • 菊展 文 /張顯鴻 咪咪笑嗅回,喜盈盈及穗, 層層疊疊羅漢型。 相扶相助绵载, 兄弟姐妹情埂陆。 涼涼天,風(fēng)冷冷娃豹, 寒寒吹吹秋濃景...
    遠(yuǎn)方的紅K線閱讀 126評論 0 1