源自2014年12月的Google发表的MapReduce论文,它是一个编程模型,用于大数据量的计算,MapReduce是分布式计算框架。具有海量数据离线处理。对于大数据量的计算,通常采用的处理方式就是并行计算,MapReduce就是一种简化并行计算的编程模型,它使得并没有并行计算经验的开发人员也可以计算并行应用程序
MapReduce采用的是分而治之的思想,即把大规模数据集的操作,分发给一个主节点管理下的各个子节点共同完成,然后整合各个子节点的中间结果,从而得到最终的计算结果。就是分散任务,汇总结果
MapReduce分成Map阶段和Reduce阶段。用户只需要编写map()和reduce两个函数,即可完成简单的分布式程序的设计 map()函数以key/value对作为输入,产生另外一系列key/value对作为中间输出写入本地磁盘,MapReduc框架会自动将这些中间数据按照key值进行聚集,且key值相同(用户可设定聚集策略,默认情况下是对key值进行哈希取模)的数据被统一交给reduce()函数处理。 reduce()函数以key及对应的value列表作为输入,经合并key相同的value值后,产生另外一系列key/value作为最终输出写入HDFS.