MapReduce是一个编程模型,用于在大型集群上以容错的方式处理和生成海量数据集。用户通过两个函数表达计算逻辑:Map和Reduce。Map函数将输入数据转换为键值对集合;Reduce函数将具有相同键的值合并为更小的集合。
MapReduce的灵感来自于函数式编程语言中的map和reduce原语。开发者可以使用该模型处理许多不同类型的问题,包括分布式排序、Web访问日志分析、倒排索引构建、文档聚类等。
Google的MapReduce实现运行在由成千上万台机器组成的集群上,每秒可处理数TB的数据。MapReduce的编程模型简化了程序员在这些大型集群上的开发工作,隐藏了并行化、容错和数据分发等底层细节。