Hadoop系列——MapReduce过程简版

本文详细介绍了Hadoop MapReduce的工作流程,包括Split、Partition、Sort、Combine、Copy及Merge等关键步骤,并通过实例说明了每一步的具体操作。

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

借助一位大牛的图:



我们可以看到图中的几大步骤(大致上分成6步):


Map: Split[拆解] —— Partition[分区] —— Sort[排序] —— Combine[初次整合]——Copy[拷贝下载]——Reduce:Merge[二次整合] 


Split:将文件中的行信息分拆成若干split,再将行信息打散成独立部分,以信息内容为key,以“1”为value;每个输入片的大小是固定的。默认情况下,输入片(InputSplit)的大小与数据块(Block)的大小是相同的。如果数据块(Block)的大小是默认值64MB,输入文件有两个,一个是32MB,一个是72MB。那么小的文件是一个输入片,大文件会分为两个数据块,那么是两个输入片。一共产生三个输入片每一个输入片由一个Mapper进程处理

         (ex:如两行数据,第一行 a b c d a b c d  ;  

                                          第二行a b c d a b c d  ;

经过Split后为Split0:Partition1 a 1,a  1 ,b 1,b 1    

                                  Partition2 c 1,c 1 , d  1,d  1

                     Split2:Partition1 a 1,a 1 ,b 1,b 1   

                                  Partition2 c 1,c 1 , d  1,d  1 )

Partition:用hash将key散列为若干区,方便后面的拷贝下载;默认是只有一个区分区的数量就是Reducer任务运行的数量

          (ex:将Split0中的数据分成Partition1、Partition2,                    

                     将Split1中的数据分成Partition1、Partition2

Sort:将key排序;

Combine:将key相同的整合,并更新value为其出现频率,其实质是压缩数据,方便后续数据的传输;

                 (ex:整合后的Split0:Partition1 a 2 ,b 2    Partition2 c 2 , d  2;

                                           Split1:Partition1 a 2 ,b 2   Partition2 c 2 , d  2;

Copy:由不同的Reduce节点下载各自分区的数据;

                (ex:Reduce1节点 下载 Split0中的Partition1和Split1中的Partition1 ,

                          由Reduce2节点 下载 Split0中的Partition2和Split1中的Partition2 

Merge:将各个Reduce节点中的Partition整合,有相同的key的就合并,并更新value值为其频率;当然Merge完了之 后也会进行一次排序;最后生成HDFS文件。

             (ex:整合后的Reduce1:Partition1 a 4,b 4  

                                      Reduce2: Partition2 c 4 ,d 4 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值