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