这个问题没有一个“正确”的答案。
我对在集群上以 TB 的数据运行 Map Reduce 算法很感兴趣。
我想了解更多关于上述算法的运行时间。
我应该读什么书?
我对设置 Map Reduce 集群或运行标准算法不感兴趣。我想要严格的理论处理或运行时间。
编辑:问题不在于地图减少更改运行时间。问题是——大多数算法不能很好地分布到映射减少框架。我对在 map reduce 框架上运行的算法感兴趣。
从技术上讲,与“标准”算法相比,MapReduce 的运行时分析并没有真正的不同——MapReduce 仍然是一种算法,就像任何其他算法一样(或者具体来说,是在多个步骤中发生的一类算法,这些步骤之间具有一定的交互作用)。
当您考虑跨多台机器的任务划分,然后找到每个步骤所需的最大单个机器时间时,MapReduce 作业的运行时间仍将扩展正常算法分析的预测方式。
也就是说,如果您有一个任务需要 M 个 map 操作和 R 个 reduce 操作,在 N 台机器上运行,并且您预计平均 map 操作将花费 m 时间,而平均 reduce 操作将花费 r 时间,那么您将有一个ceil(M/N)*m + ceil(R/N)*r
完成所有相关任务的预期运行时间。
M、R、m 和 r 的值的预测都可以通过对您插入 MapReduce 的任何算法的正常分析来完成。
我所知道的只有两本书出版,但还有更多的作品:
其中,Pro Hadoop 更像是一本初学者的书,而 The Definitive Guide 是为那些知道 Hadoop 究竟是什么的人准备的。
我拥有权威指南,并认为它是一本优秀的书。它提供了有关 HDFS 工作原理的良好技术细节,并涵盖了一系列相关主题,如 MapReduce、Pig、Hive、HBase 等。还应该注意的是,这本书是由 Tom White 撰写的,他曾参与开发 Hadoop 有一段时间,现在在cloudera工作。
至于在 Hadoop 上进行的算法分析,您可以查看 TeraByte 排序基准。雅虎写了一篇关于 Hadoop 在这个特定基准测试中的表现的文章:Apache Hadoop 上的 TeraByte 排序。这篇论文写于 2008 年。
有关 2009 年结果的更多详细信息,请参见此处。
有一本关于应用于 MapReduce 模型的数据挖掘算法的好书。
它是由两位斯坦福大学教授编写的,如果可以免费获得的话: