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

溫馨提示×

溫馨提示×

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

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

Spark2.x中三種ShuffleWriter觸發條件分別是什么

發布時間:2021-12-16 20:35:13 來源:億速云 閱讀:167 作者:柒染 欄目:大數據

Spark2.x中三種ShuffleWriter觸發條件分別是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一、概述

    基于Sort的Shuffle Writer有三種實現:BypassMergeSortShuffleWriter、UnsafeShuffleWriter、SortShuffleWriter,下面我們主要看看在Spark2.x是如何選擇使用哪種Shuffler Writer處理的。

二、Shuffle觸發條件

 1.我們結合源碼來看ShuffleManager是如何來決定選擇實例化哪一種ShuffleHandle,如果注冊的是SerializedShuffleHandle,就獲取UnsafeShuffleWriter;如果注冊的是BypassMergeSortShuffleHandle,就獲取BypassMergeSortShuffleWriter;如果注冊的是BaseShuffleHandle,就獲取SortShuffleWriter,registerShuffle()函數代碼如下:

  override def registerShuffle[K, V, C](      shuffleId: Int,      numMaps: Int,      dependency: ShuffleDependency[K, V, C]): ShuffleHandle = {      /*先判斷是否滿足BypassMergeSortShuffleHandle條件*/    if (SortShuffleWriter.shouldBypassMergeSort(conf, dependency)) {      new BypassMergeSortShuffleHandle[K, V](        shuffleId, numMaps, dependency.asInstanceOf[ShuffleDependency[K, V, V]])       /*再判斷是否滿足SerializedShuffleHandle條件*/    } else if (SortShuffleManager.canUseSerializedShuffle(dependency)) {      // Otherwise, try to buffer map outputs in a serialized form, since this is more efficient:      new SerializedShuffleHandle[K, V](        shuffleId, numMaps, dependency.asInstanceOf[ShuffleDependency[K, V, V]])     /*最后才是BaseShuffleHandle*/    } else {      // Otherwise, buffer map outputs in a deserialized form:      new BaseShuffleHandle(shuffleId, numMaps, dependency)    }  }

2.上面registerShuffle()函數的各個策略的判斷條件,這里詳細說一下:

1).BypassMergeSortShuffleWriter(對應BypassMergeSortHandle)的觸發條件如下:

a.map端不能進行aggregation聚合操作

b.不能指定ordering,即分區內數據不能排序

c.分區的數目必須小于 spark.shuffle.sort.bypassMergeThrshold指定的閥值,默認值是200

2).UnsafeShuffleWriter觸發條件(對應SerializedShuffleHandle)的觸發條件如下:

a.shuffle依賴不帶有聚合操作

b.支持序列化值的重新定位

c.分區數量少于16777216個

3).SortShuffleWriter(對應BaseShuffleHandle)

    上面如果不滿足,默認是這個策略,用于處理所有其他情況。

關于Spark2.x中三種ShuffleWriter觸發條件分別是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

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

AI

灯塔市| 临湘市| 淳安县| 毕节市| 昌江| 惠水县| 都匀市| 钦州市| 台前县| 柏乡县| 桐柏县| 博乐市| 确山县| 武胜县| 宝清县| 石屏县| 沁源县| 监利县| 天水市| 团风县| 嵩明县| 台南市| 常山县| 永新县| 攀枝花市| 富宁县| 米林县| 田东县| 蕉岭县| 大悟县| 无锡市| 大连市| 大港区| 林芝县| 渭南市| 怀宁县| 丹凤县| 建德市| 黑水县| 康平县| 邻水|