Hadoop渐进四:MapRaduce流程简述

一、MapRaduce介绍

MapReduce是一种编程模型,具有在多节点上并行处理大数据的能力。MapReduce算法包含两个重要的事务,分别是Map和Reduce:

1、Map:把大量复杂任务分解成多个少量简单任务;

2、Reduce:将多个少量任务结果进行归类汇总。 


二、Map/Reduce步骤 


1、Map:负责数据的过滤分发

(1)、Splitting:从数据源(HDFS的数据块)获取数据集,随后分解成更小的子数据集

(2)、Mapping:在子数据集上进行必要的数据处理(包括spill、sort等)

注:每个map task都有一个存储map输出结果的内存缓冲区,当缓冲区快满的时候需要将缓冲区数据临时存储在磁盘上(不是HDFS),这里从内存写数据到磁盘的操作就是(溢写:spill),在map task任务结束后再对磁盘中的多个溢写数据文件整合到一个溢写文件中,然后等待分配reduce task后拉取这些输出数据。

2、Shuffle:Shuffle是MapReduce的核心

(1)、Copying:map task任务结束后,使用http请求拉取map阶段生成的输出文件。

(1)、Merging:合并Copying的所有键值对(主要是相同键值合并)

(2)、Sorting:使用健(keys)排序所有的键值对(<Key, List<Value>>)

注:Shuffle过程开始于map task数据输出,结束于reduce task数据输入,横跨Map端和Reduce端;在这个过程中,Shuffle主要任务是对Map的结果进行分区(partition)、排序(sort)和分割(spill),相当于把一组无规则的数据转换成一组具有一定规则的数据。

3、Reduce:负责数据的计算归并

这是最后一步,在这个过程中产生了最终的输出结果,并将其写到HDFS上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值