電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>模擬數(shù)字>如何解決Spark數(shù)據(jù)傾斜的八種實(shí)用方法詳細(xì)說明

如何解決Spark數(shù)據(jù)傾斜的八種實(shí)用方法詳細(xì)說明

2020-04-02 | doc | 0.04 MB | 次下載 | 2積分

資料介紹

  什么是數(shù)據(jù)傾斜?

  對(duì) Spark/Hadoop 這樣的分布式大數(shù)據(jù)系統(tǒng)來講,數(shù)據(jù)量大并不可怕,可怕的是數(shù)據(jù)傾斜。

  對(duì)于分布式系統(tǒng)而言,理想情況下,隨著系統(tǒng)規(guī)模(節(jié)點(diǎn)數(shù)量)的增加,應(yīng)用整體耗時(shí)線性下降。如果一臺(tái)機(jī)器處理一批大量數(shù)據(jù)需要 120 分鐘,當(dāng)機(jī)器數(shù)量增加到 3 臺(tái)時(shí),理想的耗時(shí)為 120 / 3 = 40 分鐘。但是,想做到分布式情況下每臺(tái)機(jī)器執(zhí)行時(shí)間是單機(jī)時(shí)的1 / N,就必須保證每臺(tái)機(jī)器的任務(wù)量相等。不幸的是,很多時(shí)候,任務(wù)的分配是不均勻的,甚至不均勻到大部分任務(wù)被分配到個(gè)別機(jī)器上,其它大部分機(jī)器所分配的任務(wù)量只占總量的小部分。比如一臺(tái)機(jī)器負(fù)責(zé)處理 80% 的任務(wù),另外兩臺(tái)機(jī)器各處理 10% 的任務(wù)。

  『不患多而患不均』,這是分布式計(jì)算環(huán)境下最大的問題。意味著計(jì)算能力不是線性擴(kuò)展的,而是存在短板效應(yīng): 一個(gè) Stage 所耗費(fèi)的時(shí)間,是由最慢的那個(gè) Task 決定。

  由于同一個(gè) Stage 內(nèi)的所有 task 執(zhí)行相同的計(jì)算,在排除不同計(jì)算節(jié)點(diǎn)計(jì)算能力差異的前提下,不同 task 之間耗時(shí)的差異主要由該 task 所處理的數(shù)據(jù)量決定。所以,要想發(fā)揮分布式系統(tǒng)并行計(jì)算的優(yōu)勢(shì),就必須解決數(shù)據(jù)傾斜問題。

  數(shù)據(jù)傾斜的危害

  當(dāng)出現(xiàn)數(shù)據(jù)傾斜時(shí),小量任務(wù)耗時(shí)遠(yuǎn)高于其它任務(wù),從而使得整體耗時(shí)過大,未能充分發(fā)揮分布式系統(tǒng)的并行計(jì)算優(yōu)勢(shì)。

  另外,當(dāng)發(fā)生數(shù)據(jù)傾斜時(shí),部分任務(wù)處理的數(shù)據(jù)量過大,可能造成內(nèi)存不足使得任務(wù)失敗,并進(jìn)而引進(jìn)整個(gè)應(yīng)用失敗。

  數(shù)據(jù)傾斜的現(xiàn)象

  當(dāng)發(fā)現(xiàn)如下現(xiàn)象時(shí),十有八九是發(fā)生數(shù)據(jù)傾斜了:

  絕大多數(shù) task 執(zhí)行得都非??欤珎€(gè)別 task 執(zhí)行極慢,整體任務(wù)卡在某個(gè)階段不能結(jié)束。

  原本能夠正常執(zhí)行的 Spark 作業(yè),某天突然報(bào)出 OOM(內(nèi)存溢出)異常,觀察異常棧,是我們寫的業(yè)務(wù)代碼造成的。這種情況比較少見。

  TIPS:

  在 Spark streaming 程序中,數(shù)據(jù)傾斜更容易出現(xiàn),特別是在程序中包含一些類似 sql 的 join、group 這種操作的時(shí)候。因?yàn)?Spark Streaming 程序在運(yùn)行的時(shí)候,我們一般不會(huì)分配特別多的內(nèi)存,因此一旦在這個(gè)過程中出現(xiàn)一些數(shù)據(jù)傾斜,就十分容易造成 OOM。

  數(shù)據(jù)傾斜的原因

  在進(jìn)行 shuffle 的時(shí)候,必須將各個(gè)節(jié)點(diǎn)上相同的 key 拉取到某個(gè)節(jié)點(diǎn)上的一個(gè) task 來進(jìn)行處理,比如按照 key 進(jìn)行聚合或 join 等操作。此時(shí)如果某個(gè) key 對(duì)應(yīng)的數(shù)據(jù)量特別大的話,就會(huì)發(fā)生數(shù)據(jù)傾斜。比如大部分 key 對(duì)應(yīng)10條數(shù)據(jù),但是個(gè)別 key 卻對(duì)應(yīng)了100萬條數(shù)據(jù),那么大部分 task 可能就只會(huì)分配到10條數(shù)據(jù),然后1秒鐘就運(yùn)行完了;但是個(gè)別 task 可能分配到了100萬數(shù)據(jù),要運(yùn)行一兩個(gè)小時(shí)。

  因此出現(xiàn)數(shù)據(jù)傾斜的時(shí)候,Spark 作業(yè)看起來會(huì)運(yùn)行得非常緩慢,甚至可能因?yàn)槟硞€(gè) task 處理的數(shù)據(jù)量過大導(dǎo)致內(nèi)存溢出。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1490次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
  14. 0.63 MB  |  3次下載  |  免費(fèi)
  15. 89天練會(huì)電子電路識(shí)圖
  16. 5.91 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)