大数据运算模型 MapReduce 原理

本文介绍了大数据运算模型MapReduce的基本原理及工作流程。通过图书馆管理员分配任务的类比,通俗易懂地解释了MapReduce中的map和reduce操作。并通过单词统计案例详细展示了MapReduce的具体执行过程。

 

MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计算模型
 
MapReduce 通俗解释
 
图书馆要清点图书数量,有10个书架,管理员为了加快统计速度,找来了10个同学,每个同学负责统计一个书架的图书数量
 
张同学 统计 书架1
王同学 统计 书架2
刘同学 统计 书架3
......
 
 
过了一会儿,10个同学陆续到管理员这汇报自己的统计数字,管理员把各个数字加起来,就得到了图书总数
 
这个过程就可以理解为MapReduce的工作过程
 
MapReduce中有两个核心操作
 
(1)map
 
管理员分配哪个同学统计哪个书架,每个同学都进行相同的“统计”操作,这个过程就是map
 
(2)reduce
 
管理员把每个同学的结果进行汇总,这个过程就是reduce
 
MapReduce 工作过程拆解
 
下面通过一个经典案例(单词统计)看MapReduce是如何工作的
 
有一个文本文件,被分成了4份,分别放到了4台服务器中存储
 
Text 1: the weather is good        
Text 2: today is good
Text 3: good weather is good    
Text 4: today has good weather
 
需求:统计出每个单词的出现次数
 
处理过程
 
01
分词处理
 
map节点 1
 
输入:(text1, “the weather is good”)
 
输出:(the, 1), (weather, 1), (is, 1), (good, 1)
 
 
 
map节点 2
 
输入:(text2, “today is good”)
 
输出:(today, 1), (is, 1), (good, 1)
 
 
 
map节点 3
 
输入:(text3, “good weather is good”)
 
输出:(good, 1), (weather, 1), (is, 1), (good, 1)
 
 
 
map节点 4
 
输入:(text3, “today has good weather”)
 
输出:(today, 1), (has, 1), (good, 1), (weather, 1)
 
 
 
02
排序
 
map节点 1
 
 
 
map节点 2
 
 
 
map节点 3
 
 
 
map节点 4
 
 
 
03
合并
 
map节点 1
 
 
 
map节点 2
 
 
 
map节点 3
 
 
 
map节点 4
 
 
 
04
汇总统计
 
MapReduce引入了barrier概念,有的译为“同步障”,我理解为“分界线”,是进入reduce的一道分界线
 
barrier的作用是对合并结果进行组合
 
例如使用了3个reduce节点,需要对上面4个map节点的结果进行重新组合,把相同的单词放在一起,并分配给3个reduce节点
 
reduce节点进行统计,计算出最终结果
 
posted on 2018-08-15 19:27 micwin 阅读( ...) 评论( ...)   编辑 收藏

转载于:https://www.cnblogs.com/chinanetwind/articles/9483496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值