在Google每天都有海量的数据需要处理,而且随着时间的积累数据量也在不断增大。其程序员需要编写大量的具有专门目的的计算程序,以用于处理海量的原始数据。如爬虫文档、Web请求日志、查询请求等等。同时要的计算不同类型的派生数据仍旧是海量的,且成本和时间要求是有限的。此类的计算在概念理解上是容易的,但是实际实现是则因为输入的数据量的巨大,且计算处理需要分布在大量的机器上才有可能在一定的时间内完成。如何实现并行计算,分发数据,容错,管理调度和监控,综合起来,将使原本看似容易的计算,因需要大量的复杂的代码来处理,而变得异常的艰难。即简单的计算在数据规模较大时变得复杂而难以控制。为了更加有效和简洁的处理此类问题,Google提出了MapReduce编程模型,