亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

大數據中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

荆门市| 淳化县| 农安县| 曲沃县| 丁青县| 建湖县| 自贡市| 土默特右旗| 阳东县| 秀山| 吴桥县| 集安市| 万源市| 遵义县| 鄂托克旗| 湛江市| 炉霍县| 连平县| 遂宁市| 获嘉县| 丰县| 阿合奇县| 北川| 宜昌市| 无极县| 柯坪县| 彭泽县| 岱山县| 乌苏市| 沂南县| 安塞县| 房产| 婺源县| 玛纳斯县| 姜堰市| 江津市| 龙口市| 灌阳县| 通州区| 正蓝旗| 福建省|