大数据运算模型 MapReduce 原理

Posted 十光年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据运算模型 MapReduce 原理相关的知识,希望对你有一定的参考价值。

大数据运算模型 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节点进行统计,计算出最终结果

技术分享


















































































































以上是关于大数据运算模型 MapReduce 原理的主要内容,如果未能解决你的问题,请参考以下文章

大数据|MapReduce模型 | Hadoop MapReduce的基本工作原理

mapreduce工作原理

大数据系列之分布式计算批处理引擎MapReduce实践

MapR 和 Map Reduce 有啥区别?

大数据运算系统一

大数据技术之Hadoop(MapReduce)