zoukankan      html  css  js  c++  java
  • Hadoop 中shuffle为什么要排序?

    排序
    对于数学运算来说,加减乘除是基本的运算符。而对于计算机计算处理数据来说,排序、查找等就是它的基本运算符。

    列一些排序的应用:

    查找某个元素在数组中的位置。可以将数组排序,之后二分查找
    找出两个数组都包含的元素。可以将两个数组排序,然后循环对比
    ……
    在数据处理时,基于有序数据的处理会比无序数据快很多。but,排序是需要时间和空间的。

    所以涌现了很多优秀的排序算法,降低排序的代价。

    Hadoop shuffle为什么要排序?
    MapReduce在shuffle阶段会有两个地方发生排序:

    map端溢写磁盘前会根据key排序
    reduce端拉取分区数据后进行排序
    reduce端排序
    Reduce端需要对数据进行分组,将key相同的放在一起规约。为达到目的,有两种算法:hashmap和sort,前者太耗内存,而排序可以通过外排对任意数据量分组,只要磁盘数据量够大就行。

    map端排序
    map端排序是为了减轻reduce端排序的压力。


    关于这个问题,更多的讨论可查看:Hadoop的MapReduce阶段为什么要进行排序?
    ————————————————
    版权声明:本文为CSDN博主「upupfeng」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ifenggege/article/details/108024992

  • 相关阅读:
    201403-1
    201312-5 I’m stuck!
    201312-4
    201312-3
    201312-2 ISBN号码
    深度学习-李宏毅PPT总结
    梯度下降
    离散时间信号与系统-频域:5
    离散时间信号与系统-时域:4
    离散时间信号与系统-时域:3
  • 原文地址:https://www.cnblogs.com/zhipeng-wang/p/14480404.html
Copyright © 2011-2022 走看看