关于Hadoop中MapReduce的执行过程详解

Map阶段 

第一阶段:

把文件进行逻辑切片(确定分成几份)。

默认 切片大小 等于 Block大小(128M),每个切片都由一个Map处理,如果不满128也算作一个切片交由Map处理。(默认切片类:getSplits)

===============================Maptask===================================

第二阶段:

读取切片中的数据并返回<key,value>对。

默认是按行读取数据,每读一行就封装程一个<key,value>的键值对(默认读数据类:TextInputFormat)

一行数据传给map方法处理数据(切割

每读取解析出来一个<key,value>,调用一次map方法。

第三阶段:

(正常来说此时应该写入磁盘当中但是会性能低下,所以设置一个内存缓冲区叫做Memory Buffer,先写到缓冲区,到达一定的比例再写到磁盘叫做溢出

Map输出数据写入内存缓冲区,满了以后溢出变成一个临时文件,继续写继续溢出又变成一个文件,就是下面三个小块。溢出的时候根据key进行排序sort。(根据key字典序排序)。

partions是分区:存储区域或任务划分为多个独立的部分或子区域的过程。

第四阶段:

对所有溢出的文件进行merge合并,成为一个文件。

Reduce阶段

==============================ReduceTask=================================

第一阶段:ReduceTask会主动从MapTask复制拉取需要自己处理的数据。

第二阶段:把拉取来的数据,全部进行合并merge,再对合并后的数据排序

第三阶段:对排序后的键值对调用reduce方法。键相等的键值对调用一次reduce方法。最后把这些键值对写到HDFS文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值