mapreduce计算模型和执行原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
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任务的数量是相同的
关于mapreduce计算模型和执行原理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。