Hadoop MapReduce Shuffle 过程解析

本文详细解析了Hadoop MapReduce的Shuffle过程,包括Map端的split、partition、溢写和Merge四个步骤,以及Reduce端的Copy和Merge阶段。Shuffle作为MapReduce的关键,负责数据的整合与传输,确保Reduce阶段能接收到完整有序的数据。文中还介绍了Combiner的使用以及数据排序和合并的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hadoop MapReduce Shuffle过程解析



Shuffle过程是Mapreduce的核心,要想理解Mapreduce,Shuffle过程是必须了解的。

Shuffle的本义是洗牌,混乱,把一组有规则的数据转换成一组无规则的数据,Mapreduce中的shuffle更像是洗牌的逆过程,把map端处理完的数据规约到reduce端,更像是一个整合的过程,把相对无规则的数据转换成有规则的数据。

为什么Mapreduce计算模型需要shuffle过程?

因为Mapreduce一般包括两个重要的阶段:Map是映射,负责数据的过滤分发,
Reduce是归约,负责数据的计算归并,Map的输出即是Reduce的输入。Reduce需要shuffle来获取数据,保证接收到数据是完整有序的,在分布式系统中,map和Reduce基本分布在不同的节点,需要shuffle来协调数据的传输,shuffle会合理合并数据以减少网络IO,提高计算效率。

Shuffle流程解析

在这里插入图片描述

Shuffle在Mapreduce中是一个贯穿map端和reduce端的一个过程,总体分为两个阶段:Map端和Reduce端,我画了一张容易理解的流程图。

Map:

Map端包括以下四个步骤:

1、split过程:

首先对输入文件进行切分,当前版本默认切分规则是一个split切片对应hdfs中的块大小,一个maptask处理一个切片,经过重写过的map方法之后进入下一个阶段,关于切分规则看我另外一篇博客。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值