共計 990 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章主要介紹“tungsten-sort 有哪些優點”,在日常操作中,相信很多人在 tungsten-sort 有哪些優點問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”tungsten-sort 有哪些優點”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
spark 實現了多種 shuffle 方法,通過 spark.shuffle.manager 來確定。暫時總共有三種:hash shuffle、sort shuffle 和 tungsten-sort shuffle,從 1.2.0 開始默認為 sort shuffle。
spark 在 1.4 以后可以通過(spark.shuffle.manager = tungsten-sort)開啟 Tungsten-sort shuffle。如果 Tungsten-sort 發現自己無法處理,則會自動使用 Sort Based Shuffle 進行處理。Tungsten-sort 優化點主要有:
直接在 serialized binary data 上操作,不需要反序列化,使用 unsafe 內存 copy 函數直接 copy 數據。
提供 cache-efficient sorter ShuffleExternalSorter 排序壓縮記錄指針和 partition ids, 使用一個 8bytes 的指針,把排序轉化成了一個指針數組的排序。
spilling 的時候不需要反序列化和序列化
spill 的 merge 過程也無需反序列化即可完成,但需要 shuffle.unsafe.fastMergeEnabled 的支持
當且僅當下面條件都滿足時,才會使用新的 Shuffle 方式:
Shuffle dependency 不能帶有 aggregation 或者輸出需要排序
Shuffle 的序列化器需要是 KryoSerializer 或者 Spark SQL s 自定義的一些序列化方式.* Shuffle 文件的數量不能大于 16777216
序列化時,單條記錄不能大于 128 MB
## 優點 很多性能的優化
## 缺點
不可以在 mapper 端排序
不穩定
沒有提供 off-heap 排序緩存
到此,關于“tungsten-sort 有哪些優點”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!