微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark的shuffle流程

1、shuffle流程演变

  • Spark 0.8及以前 Hash Based Shuffle
  • Spark 0.8.1 为Hash Based Shuffle引入File Consolidation机制
  • Spark 1.1 引入Sort Based Shuffle,但认仍为Hash Based Shuffle
  • Spark 1.2 认的Shuffle方式改为Sort Based Shuffle
  • Spark 2.0 Hash Based Shuffle退出历史舞台

2、Hash Based Shuffle

3、Sort Based Shuffle

4、Shuffle Writer的三种方式

  • Shuffle Writer有ByPassMergeSortShuffleWriter、UnSafeShuffleWriter、SortShuffleWriter
  • 三种Shuffle Writer的选择方式:
    • 1、首先判断map端是否开启mapSideCombiner,并且判断分区数量是否小于spark.shuffle.sort.byPassMerge.Threshold(认为200),如果条件满足,使用ByPassMergeSortShuffleWriter
    • 2、如果不满足上述两个条件的任意一个,判断serializer是否支持relocation,并且判断是否十四用aggregator和分区数是否小于16777215,如果条件都满足,使用UnSafeShuffleWriter,否则使用SortShuffleWriter

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐