mapreduce可以解决哪些类型的问题?

时间:2009-04-01 12:40:53

标签: parallel-processing mapreduce

是否有可用的理论分析来描述mapreduce可以解决哪些问题?

8 个答案:

答案 0 :(得分:9)

Map-Reduce for Machine Learning on Multicore Chu 中描述“适合统计查询模型的算法可以用某种”求和形式编写“,这使得它们可以在多核计算机上轻松并行化。 “它们具体实现了10种算法,包加权线性回归,k-Means,Naive Bayes和SVM,使用map-reduce框架。

Apache Mahout项目基于本文的想法发布了一些最近的Hadoop(Java)实现方法。

答案 1 :(得分:5)

对于需要处理和生成大型数据集的问题。假设对银行持有的所有账户运行利息生成查询。假设处理过去一年在银行中发生的所有交易的审计数据。最好的用例来自谷歌 - 为谷歌搜索引擎生成搜索索引。

答案 2 :(得分:5)

许多“令人尴尬的并行”问题(很棒的短语!)都可以使用MapReduce。 http://en.wikipedia.org/wiki/Embarrassingly_parallel

从这篇文章中...... http://www.businessweek.com/magazine/content/07_52/b4064048925836.htm ...

Hadoop(MapReduce的开源实现)的创始人Doug Cutting说...... “Facebook使用Hadoop来分析用户行为和网站上广告的有效性”

和......“纽约时报的技术团队在亚马逊的云上租用计算能力,并使用Hadoop将可追溯到1851年的1100万份存档文章转换成数字和可搜索的文档。他们在一天之内就转过身去做一个本来需要几个月的工作。“

答案 3 :(得分:3)

涉及对大量数据进行操作的任何事情,其中​​问题可以分解为较小的独立子问题,然后可以聚合结果以产生对较大问题的答案。

一个简单的例子就是计算一大组数字的总和。您将集合拆分为较小的集合,并行计算这些较小集合的总和(这可能涉及将这些集合拆分为更小的集合),然后对这些结果求和以达到最终答案。

答案 4 :(得分:3)

答案恰恰在于算法的名称。 MapReduce不是一般的并行编程工作或批处理执行框架,正如一些答案所示。当需要处理的大型数据集(映射阶段)并从那里派生某些属性时,Map Reduce非常有用,然后需要对这些派生属性进行汇总(还原阶段)。

答案 5 :(得分:2)

您还可以观看videos @ Google,我自己正在观看,我发现它们很有教育意义。

答案 6 :(得分:1)

答案 7 :(得分:1)

这个问题在它的时间之前被问到了。自2009年以来,实际上已经对MapReduce计算进行了理论分析。 2010年的Howard Karloff et al.论文将MapReduce正式化为复杂性类,与理论家研究P和NP的方式相同。他们证明了MapReduce和一个名为NC的类之间的某种关系(可以将其视为共享内存并行机或某类限制电路)。但主要工作是他们的正式定义。