全球主机交流论坛

标题: MapReduce编程模式的简述 [打印本页]

作者: 帝通科技    时间: 2017-8-8 15:13
标题: MapReduce编程模式的简述
下面小编举一个有趣的例子,帮助大家快速理解MapReduce编程模式:
[attach]596[/attach]
怎样找出一摞牌中有多少红桃?
一般情况下我们是一张一张数出红桃的数量。
但是使用MapReduce的编程方法是:给在座所有的人分配这些牌,让每个人自己数自己手中有几张是红桃,然后把数目汇报给我,这样我把所有玩家的数字结合起来,我就知道到底有多少张红桃。
就就对应了MapReduce的编程里面的两个核心函数:映射和化简。
MapReduce与Google的关系:
MapReduce是Google提出的一个软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行运算。“Map(映射)"、“Reduce(化简)”的概念和主要思想,都是从函数式编程语言和矢量编程语言借鉴来的。帝通科技为你解答正是由于MapReduce有函数式和矢量编程语言的共性,使得这种编程模式特别适合于非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习等。
产生背景:
MapReduce这种并行编程模式思想最早是在1995年提出的,首次提出了“map”和“fold”的概念,和Google现在所使用的“Map"和“Reduce”思想相吻合。
与传统的分布式程序设计相比,MapReduce封装了并行处理、容错处理、本地化计算、负载均衡等细节,还提供了一个简单而强大的接口。通过这个接口,可以把大尺度的计算自动地并发和分布执行,使编程变得非常容易。另外,MapReduce也具有较好的通用性,大量不同的问题都可以简单地通过MapReduce来解决。
据相关统计,每使用一次Google搜索引擎,Google的后台服务器就要进行1011次运算。这么庞大的运算量,如果没有好的负载均衡机制,有些服务器的利用率会很低,有些则会负荷太重,有些甚至可能死机,这些都会影响系统对用户的服务质量。而使用MapReduce这种编程模式,就保持了服务器之间的均衡,提高了整体效率。
小编简单介绍MapReduce的概念,希望也能够帮助你们的理解,最后小编总结一下。其实MapReduce就是一种编程的模式,我们可以用很多语言实现,比如java,C++。他的两大核心函数:map(映射)作用是过滤一些原始的数据,而Reduce(化简)作用是处理这些数据,比如我们如何数出纸牌的数量。
以上内容由帝通科技原创,转载请注明出处:www.ddv.cn


作者: xt19950121    时间: 2017-8-11 10:35
我的我的韩国SK一笑而过~
http://www.geoidc.com/




欢迎光临 全球主机交流论坛 (http://bbs.cuwww.com/) Powered by Discuz! X3.2