美文网首页
spark 2.1 sort-based shuffle

spark 2.1 sort-based shuffle

作者: Gilegamesh | 来源:发表于2017-05-31 15:35 被阅读0次

            spark的shuffle从最开始的basic HashShuffle的M*R个中间文件,到优化的consalidate方式的C*R个中间文件。但他们的缺点还是太明显,在面对数据量巨大的集群运算会产生巨多的中间文件。大量的读取操作且会占用大量的Memory(易造成OOM)。所以在spark 2.0之后remove了HashShuffle,开始只使用on-heap或off-heap的sort-based shuffle。

    SparkEnv.scala

    它产生的中间文件为2*M个,其中M个shuffle output的data文件,M个记录Index文件。

    index文件是根据task生成的目标partition id进行排序的(data并没有排序)。

    SortShuffleManager.scala

    Sort-based shuffle也分为两种:

    一种是序列化的排序:

    1.shuffle依赖不能有聚合和输出排序操作

    2.shuffle序列化支持序列化过的值的迁移操作

    3.shuffle产生的partitions不能超过16777216个

    一种是反序列化的排序,以上3个条件之外的情况都用这个去处理。

    好处呢就是:

    相关文章

      网友评论

          本文标题:spark 2.1 sort-based shuffle

          本文链接:https://www.haomeiwen.com/subject/bvvdfxtx.html