MapReduce的核心之Shuffle详解

本文详细介绍了MapReduce中shuffle过程的重要性和运作机制。shuffle在Map端包括分区、排序、合并等步骤,通过内存缓冲区、溢写和归并操作确保数据完整传输至Reducer端。在Reducer端,shuffle涉及数据复制、内存或磁盘的合并,并最终形成Reducer的输入文件。整个过程中,shuffle旨在优化网络消耗和磁盘IO,确保MapReduce的有效运行。
摘要由CSDN通过智能技术生成

1.MapReduce的核心之shuffle详解

上一篇中我们介绍了MapReduce是什么,以及MapReduce的运行过程,其中在运行过程中主要分为Map端与Reducer端,MapReduce计算模型主要完成了映射与化简,在这其中,有一个最重要的过程那就是其核心——shuffle,shuffle翻译过来也就是混洗。可能大家比较熟知的是JAVA API中的Collections.shuffle(List)方法,这个方法会随机的打乱参数list里的元素顺序。我们先来看看官方给出的MapReduce里面的shuffle,图示如下:

             

在Hadoop这样的集群中,大部分的Map任务与Reducer任务是在不同的节点上运行的,这就会导致Reducer从不同的Map节点去拷贝输出的数据,这样就可能造成巨大的网络消耗,这种网络消耗是正常的,不可避免,我们能做的只有减少一些不必要的网络消耗。从基本的要求来说,我们希望shuffle为我们解决:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值