首页 > 其他 > 详细

云计算(5)---MapReduce

时间:2015-10-10 00:20:12      阅读:171      评论:0      收藏:0      [点我收藏+]

什么是MapReduce

例如用MapReduce如何计算12+22+32+42

技术分享

 

用MapReduce执行Wordcount

 

步骤1:Map

技术分享

 

map task1 和map task2是独立,并行进行

并行处理能加快速度

Map阶段输出起中间媒介作用的(key,value)值,做为Reduce的输入

技术分享

步骤2 Reduce

技术分享

 

Map的输出是Reduce的输入,最后Reduce输出右边的(key,value)

Reduce阶段不是独立进行的,而是根据key值进行分组,同一个key值的record在一个Reduce进程中运行,这样它们才能sum up.

Reduce具体的工作(partition和merge)

技术分享

相同的key分到一个Reduce task, 具体分给哪个reduce处理,可以用Hash partitioning来计算,之所以选择Hash是因为它映射的hash number能做到均匀负载

 

Hadoop code - Map(Hadoop是开源的,而MapReduce不是的,MapReduce是由google发明的)

技术分享

 

MapReduce是由Google发明的,但是并没有公开实现代码,只是发表了关于它的论文

Yahhoo的工程师写了开源的MapReduce的实现,所以它变为了Apache Hadoop,现在被广泛应用

MapClass继承了基础的MapReduceBase类,实现了一个接口(一个模板接口)

Main function 是map, key和value(是text类型的数据)作为参数,有一个output,和reporter(以防止你想事后report一些事情)

Hadoop code - Reduce

云计算(5)---MapReduce

原文:http://www.cnblogs.com/yan2015/p/4865547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!