Map Reduce是一种似乎最近引起很大关注的模式,我开始看到它在我的一个专注于事件处理管道(iPhone加速度计和GPS数据)的项目中体现出来。我需要为这个项目构建大量的基础架构,实际上它超过了与之交互的逻辑代码2倍。我在EventProcessors(带有in-和outputbuffers,时间等),EventListeners,Aggregators和staged Pipeline中构建的一些组件。
这让我想到了地图缩减所需的“常见”基础设施是什么。由于我正在使用.Net,我可以看到框架和语言结构中内置的map reduce基础结构。功能语言本身支持这种范例。似乎每种语言都可以与map reduce一起使用。围绕该概念甚至还有内置的语言(例如Go)。
Apache Hadoop将Map-Reduce带入Java。 Google已patented a map-reduce framework。他们提供什么样的基础设施来减少地图?函数式语言中实现map reduce的结构是什么? map-reduce框架需要/应该提供什么?
答案 0 :(得分:2)
Hadoop基于Google File System。 Hadoop MapReduce实现也基于a paper by Google。对于Google和Hadoop,允许MapReduce成功并行运行大量数据的组件是分布式文件系统。
答案 1 :(得分:1)
据我了解,Hadoop通常基于HDFS和/或HBase基础架构,它充当Hadoop自身运行的数据分发机制。
还有Amazon Elastic MapReduce,它是一个闪亮的Web前端,它使用EC2和Hadoop来简化操作。在这种情况下,“基础设施”是EC2和S3。
P.S。对不起评论:)
答案 2 :(得分:0)
由于您习惯使用.NET,因此您可能需要查看DryadLINQ。 http://research.microsoft.com/en-us/downloads/03960cab-bb92-4c5c-be23-ce51aee0792c/default.aspx