Spark(十四) Spark性能調(diào)優(yōu)之廣播變量

一站削、背景

舉例來說,(雖然是舉例孵稽,但是基本都是用我們實(shí)際在企業(yè)中用的生產(chǎn)環(huán)境中的配置和經(jīng)驗(yàn)來說明的)许起。50個(gè)executor,1000個(gè)task菩鲜。一個(gè)map园细,10M。

默認(rèn)情況下接校,1000個(gè)task猛频,1000份副本。10G的數(shù)據(jù)蛛勉,網(wǎng)絡(luò)傳輸鹿寻,在集群中,耗費(fèi)10G的內(nèi)存資源诽凌。

如果使用了廣播變量毡熏。50個(gè)execurtor,50個(gè)副本侣诵。500M的數(shù)據(jù)痢法,網(wǎng)絡(luò)傳輸恬试,而且不一定都是從Driver傳輸?shù)矫總€(gè)節(jié)點(diǎn),還可能是就近從最近的節(jié)點(diǎn)的executor的bockmanager上拉取變量副本疯暑,網(wǎng)絡(luò)傳輸速度大大增加;500M的內(nèi)存消耗哑舒。

10000M妇拯,500M,20倍洗鸵。20倍~以上的網(wǎng)絡(luò)傳輸性能消耗的降低越锈;20倍的內(nèi)存消耗的減少。
對性能的提升和影響膘滨,還是很客觀的甘凭。

雖然說,不一定會(huì)對性能產(chǎn)生決定性的作用火邓。比如運(yùn)行30分鐘的spark作業(yè)丹弱,可能做了廣播變量以后,速度快了2分鐘铲咨,或者5分鐘躲胳。但是一點(diǎn)一滴的調(diào)優(yōu),積少成多纤勒。最后還是會(huì)有效果的坯苹。

沒有經(jīng)過任何調(diào)優(yōu)手段的spark作業(yè),16個(gè)小時(shí)摇天;三板斧下來粹湃,就可以到5個(gè)小時(shí);然后非常重要的一個(gè)調(diào)優(yōu)泉坐,影響特別大为鳄,shuffle調(diào)優(yōu),2-3個(gè)小時(shí)坚冀;應(yīng)用了10個(gè)以上的性能調(diào)優(yōu)的技術(shù)點(diǎn)济赎,JVM+廣播,30分鐘记某。16小時(shí)~30分鐘司训。

二、流程圖示

傳統(tǒng)task分發(fā)示意圖

如果說液南,task使用大變量(1m~100m)壳猜,明知道會(huì)導(dǎo)致性能出現(xiàn)惡劣的影響。那么我們怎么來解決呢滑凉?
廣播统扳,Broadcast喘帚,將大變量廣播出去。而不是直接使用

  • Question
這種默認(rèn)的咒钟,task執(zhí)行的算子中吹由,使用了外部的變量,每個(gè)task都會(huì)獲取一份變量的副本朱嘴,有什么缺點(diǎn)呢倾鲫?在什么情況下,會(huì)出現(xiàn)性能上的惡劣的影響呢萍嬉?
  • Answer

1乌昔、map,本身是不小壤追,存放數(shù)據(jù)的一個(gè)單位是Entry磕道,還有可能會(huì)用鏈表的格式的來存放Entry鏈條。所以map是比較消耗內(nèi)存的數(shù)據(jù)格式行冰。

2溺蕉、比如,map是1M悼做”捍總共,你前面調(diào)優(yōu)都調(diào)的特好贿堰,資源給的到位辙芍,配合著資源,并行度調(diào)節(jié)的絕對到位羹与,1000個(gè)task故硅。大量task的確都在并行運(yùn)行。

3纵搁、這些task里面都用到了占用1M內(nèi)存的map吃衅,那么首先,map會(huì)拷貝1000份副本腾誉,通過網(wǎng)絡(luò)傳輸?shù)礁鱾€(gè)task中去徘层,給task使用±埃總計(jì)有1G的數(shù)據(jù)趣效,會(huì)通過網(wǎng)絡(luò)傳輸。網(wǎng)絡(luò)傳輸?shù)拈_銷猪贪,不容樂觀磅尉础!H妊骸西傀!網(wǎng)絡(luò)傳輸斤寇,也許就會(huì)消耗掉你的spark作業(yè)運(yùn)行的總時(shí)間的一小部分。

4拥褂、map副本娘锁,傳輸?shù)搅烁鱾€(gè)task上之后,是要占用內(nèi)存的饺鹃。1個(gè)map的確不大致盟,1M;1000個(gè)map分布在你的集群中尤慰,一下子就耗費(fèi)掉1G的內(nèi)存。對性能會(huì)有什么影響呢雷蹂?

5伟端、不必要的內(nèi)存的消耗和占用,就導(dǎo)致了匪煌,你在進(jìn)行RDD持久化到內(nèi)存责蝠,也許就沒法完全在內(nèi)存中放下;就只能寫入磁盤萎庭,最后導(dǎo)致后續(xù)的操作在磁盤IO上消耗性能霜医;

6、你的task在創(chuàng)建對象的時(shí)候驳规,也許會(huì)發(fā)現(xiàn)堆內(nèi)存放不下所有對象肴敛,也許就會(huì)導(dǎo)致頻繁的垃圾回收器的回收,GC吗购。GC的時(shí)候医男,一定是會(huì)導(dǎo)致工作線程停止,也就是導(dǎo)致Spark暫停工作那么一點(diǎn)時(shí)間捻勉。頻繁GC的話镀梭,對Spark作業(yè)的運(yùn)行的速度會(huì)有相當(dāng)可觀的影響。

廣播變量分發(fā)Task
  • Answer
    廣播變量踱启,初始的時(shí)候报账,就在Drvier上有一份副本。

task在運(yùn)行的時(shí)候埠偿,想要使用廣播變量中的數(shù)據(jù)透罢,此時(shí)首先會(huì)在自己本地的Executor對應(yīng)的BlockManager中,嘗試獲取變量副本冠蒋;如果本地沒有琐凭,那么就從Driver遠(yuǎn)程拉取變量副本,并保存在本地的BlockManager中浊服;此后這個(gè)executor上的task统屈,都會(huì)直接使用本地的BlockManager中的副本胚吁。

executor的BlockManager除了從driver上拉取,也可能從其他節(jié)點(diǎn)的BlockManager上拉取變量副本愁憔,舉例越近越

BlockManager腕扶,也許會(huì)從遠(yuǎn)程的Driver上面去獲取變量副本;也有可能從距離比較近的其他節(jié)點(diǎn)的Executor的BlockManager上去獲取

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吨掌,一起剝皮案震驚了整個(gè)濱河市半抱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膜宋,老刑警劉巖窿侈,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秋茫,居然都是意外死亡史简,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門肛著,熙熙樓的掌柜王于貴愁眉苦臉地迎上來圆兵,“玉大人,你說我怎么就攤上這事枢贿⊙撑” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵局荚,是天一觀的道長超凳。 經(jīng)常有香客問我,道長耀态,這世上最難降的妖魔是什么聪建? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮茫陆,結(jié)果婚禮上金麸,老公的妹妹穿的比我還像新娘。我一直安慰自己簿盅,他們只是感情好挥下,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著桨醋,像睡著了一般棚瘟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喜最,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天偎蘸,我揣著相機(jī)與錄音,去河邊找鬼。 笑死迷雪,一個(gè)胖子當(dāng)著我的面吹牛限书,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播章咧,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼倦西,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赁严?” 一聲冷哼從身側(cè)響起扰柠,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疼约,沒想到半個(gè)月后卤档,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡程剥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年劝枣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倡缠。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茎活,靈堂內(nèi)的尸體忽然破棺而出昙沦,到底是詐尸還是另有隱情,我是刑警寧澤载荔,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布盾饮,位于F島的核電站,受9級特大地震影響懒熙,放射性物質(zhì)發(fā)生泄漏丘损。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一工扎、第九天 我趴在偏房一處隱蔽的房頂上張望徘钥。 院中可真熱鬧,春花似錦肢娘、人聲如沸呈础。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽而钞。三九已至,卻和暖如春拘荡,著一層夾襖步出監(jiān)牢的瞬間臼节,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留网缝,地道東北人巨税。 一個(gè)月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像途凫,于是被迫代替她去往敵國和親垢夹。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

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

  • 前言 在大數(shù)據(jù)計(jì)算領(lǐng)域维费,Spark已經(jīng)成為了越來越流行果元、越來越受歡迎的計(jì)算平臺(tái)之一。Spark的功能涵蓋了大數(shù)據(jù)領(lǐng)...
    Alukar閱讀 552評論 0 6
  • 大霧彌漫犀盟,能見度不高而晒,慘淡的車流量,神秘的歡喜坡變的更加詭異阅畴。肚子餓的咕咕叫倡怎,每天晚上都處于肚子餓的狀態(tài)。鍛煉后肌...
    d380cf993c0a閱讀 31評論 0 0
  • 今天提升自己的5條 1贱枣,替玲玲看醫(yī)生监署,或咨詢治療方法,感冒吃藥過敏非常嚴(yán)重纽哥,全省長疹子 2钠乏,停止對王燕君式行為語言...
    單國英閱讀 134評論 0 0
  • 這篇文,想了很久春塌,都無從下筆晓避。不知道該怎么寫,好像有很多要說的只壳,好像又沒有俏拱。 離別時(shí),我們總喜歡說再見吼句」兀可是害怕說...
    月非寒不寒閱讀 554評論 2 1