中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數據中Spark數據傾斜表現及解決方案是什么

發布時間:2021-12-06 10:27:57 來源:億速云 閱讀:120 作者:柒染 欄目:大數據

今天就跟大家聊聊有關大數據中Spark數據傾斜表現及解決方案是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

數據傾斜描述

Spark數據傾斜表現

  • Spark引擎的大部分task執行時間比較一致,但是存在一些task的執行時間特別長,例如,500個task,其中498個執行較快,10分鐘執行完成,剩余的兩個task需要執行半個小時以上。

  • 例行化執行的代碼,某一天發生OOM問題,大概率是有數據傾斜了。

數據傾斜產生的原因是:shuffle的時候,需要將各個節點的相同的key拉取到同一個節點上,如果這個key對應的數據量非常大的時候,就會發生數據傾斜。

數據傾斜只會發生在shuffle過程中,Spark引擎會觸發Shuffle的RDD算子有:distinct、repartition、reduceByKey、groupByKey、aggregateByKey、join

常見解決方案

調整并行度

需要Shuffle的操作算子上直接設置并行度或者使用spark.default.parallelism設置。如果是Spark SQL,還可通過SET spark.sql.shuffle.partitions=num_tasks設置并行度。

該方法使用場景少,只能緩解數據傾斜,不能徹底解決數據傾斜。

Map side join

通過Spark的Broadcast機制,將Reduce Join轉化為Map Join,避免Shuffle,從而完全消除Shuffle帶來的數據傾斜。

參與Join的一側數據集足夠小,并且主要適用于Join的場景,不適合聚合的場景,適用條件有限。

異常值過濾

通過Spark的reduceByKey,統計每一個key的數量,超過指定數量的key或者數量top的key,作為異常key。當然也可以使用Sample對RDD進行抽樣后,進行key的統計。

該方法的特點是:簡單、粗暴,有一定的適用場景。

key值轉換:加隨機數

這個可以理解為大招

  • 對于單個RDD的Shuffle操作,如groupByKey,將key值加上一個隨機數的前綴。這樣就需要執行二次聚合操作。

  • 對于多個RDD的Shuffle操作,如join,將其中的一個有明顯數據傾斜的RDD的key,加上n以內的隨機數的前綴,另一個RDD的每一個key,都加上0-n的前綴,相當于RDD膨脹了n倍。

實際場景中可能需要上述方案的組合操作,比如:異常值過濾 + key值轉換:加隨機數,可以進行性能的優化:根據異常值,對RDD進行拆分:分別拆分成兩個RDD,對于沒有數據傾斜的,正常操作。對于有數據傾斜的加上隨機前綴,再進行Shuffle操作。

看完上述內容,你們對大數據中Spark數據傾斜表現及解決方案是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

库尔勒市| 铁岭县| 沙洋县| 祁连县| 杭锦后旗| 台南县| 会同县| 宣城市| 临漳县| 灵宝市| 孟连| 青浦区| 定边县| 开化县| 张家川| 平舆县| 龙井市| 汶川县| 探索| 和静县| 徐水县| 浦江县| 云和县| 平原县| 鸡东县| 马山县| 宜黄县| 屯昌县| 莱芜市| 石家庄市| 海淀区| 留坝县| 许昌市| 定西市| 汉川市| 长顺县| 上高县| 都安| 温州市| 县级市| 石景山区|