加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MapReduce介绍和有效性分析

(2010-11-19 16:16:39)
标签:

mapreduce

有效性分析

it

分类: 搜索技术

                                          作者:张金强

 

MapReduce最早由GOOGLE提出, 作为一种有效的分布式计算框架,可以用于大规模数据集的并行运算, 为海量数据的计算分析提供了一种可行方案,基于此系统,用更少人花更少时间可以完成之前不可能完成的任务,在当前无论是google,还是同行业的yahoo、阿里巴巴、百度都构建和使用着基于mapreduce概念的集群系统完成日常的业务处理。

 

"Map"和"Reduce"是编程语言中的概念,都是处理数据集合的函数,不同点是:Map在处理数据序列的过程中只处理当前的数据信息,不需要跟之前处理的状态信息交互,而reduce在处理过程中却依赖之前处理的结果,同时生成的结果也被后续的处理使用;map只是遍历数据, 数据处理无关先后,reduce是遍历的过程中生成聚合信息。

 

MapReduce是map和reduce概念的组合,如下图所示;

第一步输入数据经过input split的过程后,多组Map过程并行处理原始数据, 此过程中同时生成(key,value)序列信息;

第二步进入shuffle处理,将(key, value)的信息并行分发到多个Reduce的输入口,并保证将相同key的信息都集中到一个reduce

第三步Reduce过程中,将key->value list的信息进行整合,生成key->value的结果输出。

 

 

Mapreduce是一个将数据进行分解和整合的自动处理系统,让使用者只需要关注map和reduce的处理逻辑,中间split和shuffle的工作交给系统处理,具有规范的编程模型,易写不易出错,计算过程也可跟踪。

Mapreduce是一个可以承载超大规模key-valuelist的计算系统,说它是解决大规模计算的系统,也可以说它是一个解决超大规模数据管理的系统,处理机制可以不受数据规模的限制。

Mapreduce是一个并行计算系统,无论是map、shuffle、reduce每个步骤都是是并行执行,步骤之间一定程度上也是并行执行,具有超强的可扩展性,计算效率也可以通过机器扩展线性提高。

Mapreduce是一个可靠计算系统,从编程规范上,只专注处理逻辑,出错几率更少;从计算运行上,代码可小规模测试验证,可跟踪计算过程;从系统架构上,计算节点出现故障时,自动针对故障的数据重新计算。

 

扩展了解:

MapReduce是什么

Hadoop和数据分析

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有