前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >漫画:什么是MapReduce?

漫画:什么是MapReduce?

作者头像
小灰
发布2022-07-05 15:21:53
3350
发布2022-07-05 15:21:53
举报
文章被收录于专栏:程序员小灰

————— 第二天 —————

————————————

什么是MapReduce?

MapReduce是一种编程模型,其理论来自Google公司发表的三篇论文(MapReduce,BigTable,GFS)之一,主要应用于海量数据的并行计算。

MapReduce可以分成MapReduce两部分理解。

1.Map:映射过程,把一组数据按照某种Map函数映射成新的数据。

2.Reduce:归约过程,把若干组映射结果进行汇总并输出。

让我们来看一个实际应用的栗子,如何高效地统计出全国所有姓氏的人数?

我们可以利用MapReduce的思想,针对每个省的人口做并行映射,统计出若干个局部结果,再把这些局部结果进行整理和汇总:

这张图是什么意思呢?我们来分别解释一下步骤:

1.Map

以各个省为单位,多个线程并行读取不同省的人口数据,每一条记录生成一个Key-Value键值对。图中仅仅是简化了的数据。

2.Shuffle

Shuffle这个概念在前文并未提及,它的中文意思是“洗牌”。Shuffle的过程是对数据映射的排序、分组、拷贝。

3.Reduce

执行之前分组的结果,并进行汇总和输出。

需要注意的是,这里描述的Shuffle只是抽象的概念,在实际执行过程中Shuffle被分成了两部分,一部分在Map任务中完成,一部分在Reduce任务中完成。

Hadoop如何实现MapReduce?

Hadoop是Apache基金会开发的一套分布式系统框架,包含多个组件,其核心就是HDFSMapReduce

由于篇幅原因,文本不会对Hadoop做完整的介绍,只是简单介绍一下Haddoop框架当中如何实现MapReduce。

下面这张图是Hadoop框架执行一个MapReduce Job的全过程:

这里需要对几种实体进行解释:

HDFS:

Hadoop的分布式文件系统,为MapReduce提供数据源和Job信息存储。

Client Node:

执行MapReduce程序的进程,用来提交MapReduce Job。

JobTracker Node:

把完整的Job拆分成若干Task,负责调度协调所有Task,相当于Master的角色。

TaskTracker Node:

负责执行由JobTracker指派的Task,相当于Worker的角色。这其中的Task分为MapTask和ReduceTask。

最后,祝愿有志向成为大数据工程师的小伙伴们,以及小灰的所有读者们,在新的一年顺利达成梦想!

—————END—————

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小灰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档