您的位置:首页 > 其它

漫画:什么是MapReduce?

2018-02-09 00:00 190 查看
点击上方“程序员小灰”,选择“置顶公众号”有趣有内涵的文章第一时间送达!





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













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









什么是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任务中完成。





[b]Hadoop如何实现MapReduce?[/b]



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。











大数据技术培训哪家强?

由于大数据技术的炙手可热,相关的技术培训学校像雨后春笋一样大量涌现,但是许多培训学校其实并不靠谱。

比如这样的学校就不靠谱,上个学还要担心生命危险:



这样的学校也不靠谱,要天天被电疗:



经过多年经验,真正能入小灰法眼的技术培训学校只有五家。今天小灰为大家介绍其中一家:ItStar睿思达学院。








ItStar睿思达学院与阿里云合作,专注中高端IT教育课程,主要开设 大数据、机器学习、AI、云计算、java、前端、运维等相关课程,老师全部来自于BAT等中国乃至全球最顶尖的一线工程师。

最近,ItStar睿思达学院为我们准备了一系列免费的大数据公开课直播,此次讲座特别联合阿里云合作伙伴,11 年大数据项目开发经验、500 强企业资深大数据架构师 Arry 老师。



扫一扫又不会怀孕,有对大数据方向有兴趣或者疑问的小伙伴们,都可以扫二维码进行咨询。





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



—————END—————



喜欢本文的朋友们,欢迎长按下图关注订阅号程序员小灰,收看更多精彩内容


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: