91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

怀宁县| 辉南县| 赤壁市| 虞城县| 梁河县| 驻马店市| 临安市| 综艺| 新余市| 江西省| 景东| 塔河县| 聂荣县| 徐州市| 昂仁县| 通州区| 祁门县| 梁山县| 宁晋县| 梅河口市| 浏阳市| 安塞县| 玉门市| 娱乐| 永昌县| 东宁县| 莎车县| 师宗县| 东方市| 确山县| 轮台县| 富民县| 沾化县| 漾濞| 平塘县| 顺义区| 贞丰县| 营口市| 兴义市| 中阳县| 望城县|