Map Reduce是一种最近越来越受欢迎的模式,我开始在一个专注于事件处理管道(iPhone加速度计和GPS数据)的项目中看到它的应用。我需要为这个项目构建很多基础设施,实际上它的代码逻辑比与之交互的代码重了2倍。我构建的一些组件包括事件处理器(具有输入输出缓冲区、时间等)、事件监听器、聚合器和分阶段管道。
这让我想到了一个问题,就是Map Reduce所需的“常见”基础设施是什么。因为我经常使用.Net,我可以看到框架和语言结构中内置的Map Reduce基础设施。函数式语言本身就支持这种范式。似乎每种语言都可以与Map Reduce一起使用。甚至有一些语言是围绕这个概念构建的(例如Go)。
Apache Hadoop将Map-Reduce带到了Java中。谷歌已经专利了一个Map-Reduce框架。他们提供了哪种基础设施来实现Map Reduce?函数式语言中展示实现Map Reduce的结构是什么?Map-Reduce框架需要提供什么样的需求/功能?