面试那点事之白话叙说mapreduce计算模型和执行原理
面试那点事之白话叙说mapreduce计算模型和执行原理
开拓者-2017 发表于3年前
面试那点事之白话叙说mapreduce计算模型和执行原理
  • 发表于 3年前
  • 阅读 77
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 写在前面,我挺感谢这个群,感谢他的分享精神,感谢小头,感谢有一帮和我相同爱好的人。


 白话叙说mapreduce计算模型和执行原理
MapReduce是一种分布式计算模型、MR由两个阶段组成:Map和Reduce,一说到分阶段就有先有后,先执行map 在执行reduce。,map就是我们整个计算阶段的起始,reduce呢就是我们整个计算阶段的结束。从这个角度讲我们map的输入就是整个系统的输入,reduce的输出就是整个系统的输出 ,map的输出也就是reduce的输入  这个呢,就他的一前一后的顺序
 2.这两个函数的形参是key、value对,表示函数的输入信息。 在我们map中有个map.entry它就是获取键值对的
一、mapreduce的计算模型

 

 

mapreduce的计算模型,在这个计算模型中,客户端也就是我们写的代码会提交给jobtracker,为什么提交给它呢,因为jobtracker接受用户提交的计算任务,然后呢把计算任务分配给taskTracker来执行,在taskTracker中它有的是走map任务有的是走reduce任务,在这个图中,这边是跑map,这边是跑reduce,map呢接受的是输入数据,map处理之后呢有输出,输出呢作为reduce的输入,reduce处理完了作为输出,整个计算模型中我们的输入就是map的输入我们的输出就是reduce的输出
 注意:在这里呢,mapper有两个(也可以有多个)有一个reduce 在这呢map的数量 表示map任务的数量,这里的map 任务和reduce任务都是独立的java进程

那map的数量和reduce的数量有什么关系呢看Mapreduce原理图
-------->看下图

那map的数量和reduce的数量有什么关系呢看Mapreduce原理图
 从这个图,我们可以看出左下角的是输入文件,他的数据会送给map任务去执行,在这里一共有五个map任务,这五个map任务拿的是不同的输入数据,那么这个数据啊,他就会送到reduce这边,reduce的数量是3个,reduce处理完了,会送到我们的磁盘中。
 需要注意的是,map任务这5个是怎么对应到reduce的这3个呢,我们看一下,map的输出,出现了3个分支这3个虚线,这3个分支送到了不同的shuffle中,那么这5个map任务都有3个不同的分支都分散到不通的shuffle中,也就是说,一个shuffle 会接受5个map的输出,这个shuffle又把结果送到reduce任务中,换句话说,一个reduce接受的时候5个map的输出。那我们来琢磨这事map输出的分支数量与reduce任务的数量是相同的

共有 人打赏支持
粉丝 35
博文 150
码字总数 301625
×
开拓者-2017
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: