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

相关文章

1.SparkStreaming是什么?SparkStreaming是SparkCore的扩展A...
本篇内容介绍了“Spark通讯录相似度计算怎么实现”的有关知识...
本篇文章给大家分享的是有关如何进行Spark数据分析,小编觉得...
本篇内容主要讲解“Spark Shuffle和Hadoop Shuffle有哪些区别...
这篇文章主要介绍“TSDB的数据怎么利用Hadoop/spark集群做数...
本篇内容介绍了“Hadoop与Spark性能原理是什么”的有关知识,...