首页 >  云服务器 >  Google分布式数据处理MapReduce编程模型

Google分布式数据处理MapReduce编程模型

来源:谭兴才博客作者:谭兴才发布时间:2017-5-17 11:19阅读量:113
摘要: MapReduce的运行模型如图1所示。图中有M个Map操作和R个Reduce操作。简单地说,一个Map函数就是对一部分原始数据进行指定的操作。每个、Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以 ...
MapReduce的运行模型如图1所示。图中有M个Map操作和R个Reduce操作。

简单地说,一个Map函数就是对一部分原始数据进行指定的操作。每个、Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以充分并行化。一个Reduce操作就是对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单连接就形成了完整的结果集,因此Reduce也可以在并行环境下执行。

图1 MapReduce的运行模型

在编程的时候,开发者需要编写两个主要函数:

Map和Reduce的输入参数和输出结果根据应用的不同而有所不同Map的输入参数是in_key和in_value,它指明了Map需要处理的原始数据是哪些 Map的输出结果是一组<key,value>对,这是经过Map操作后所产生的中间结果。在进行Reduce操作之前,系统已经将所有Map产生的中间结果进行了归类处理,使得相同key对应的一系列value能够集结在一起提供给一个Reduce进行归并处理,也就是说,Reduce的输入参数是(key,[valuej,…,valuem])。Reduce的工作是需要对这些对应相同key的value值进行归并处理,最终形成( key,final_ value)的结果。这样,一个Reduce处理了一个key,所有Reduce的结果并在一起就是最终结果。

例如,假设我们想用MapReduce来计算一个大型文本文件中各个单词出现的次数,Map的输入参数指明了需要处理哪部分数据,以在文本中的起始位置,需要处理的数据长度>”表示,经过Map处理,形成一批中间结果“<单词,出现次数>”。而Reduce函数处理中间结果,将相同单词出现的次数进行累加,得到每个单词总的出现次数。

鲜花

握手

雷人

路过

鸡蛋
最新图文推荐
  • 2
  • 3

相关阅读

发表评论

最新评论

图文推荐
热门排行
5G存储 10M带宽
X
新用户专享,1元主机1年