我写了一个mapreduce应用程序,它在6个节点的计算机上运行。我确信我的mapreduce算法(在一个计算机集群上运行)比顺序算法(在一台计算机上运行)好,但我认为这并不意味着我的mapreduce算法足够有效,对吗?我四处搜索发现:加速、缩放和大小度量。在衡量mapreduce应用程序的效率时,我们通常会考虑这些指标,这是真的吗?我们需要考虑什么指标吗?非常感谢。
7lrncoxx1#
在具体解决您的问题之前,让我们重温map-reduce模型,看看它试图解决的真正问题是什么。你可以参考这个答案(由我/当然你可以参考其他好的答案为同一个问题),得到一个Map减少模型的想法。那么它真正想要解决的是什么呢?它导出了一个通用模型,可用于解决需要处理大量数据(通常以gbs甚至peta字节为单位)的大量问题。该模型的实质是易于并行化,甚至可以很容易地将执行分布在多个节点之间。这篇文章(我写的)对整个模型有一些详细的解释。那么让我们来回答你的问题,你问的是基于速度、内存效率和可伸缩性来衡量map reduce程序的效率。说到这里,map-reduce程序的效率总是取决于它在多大程度上享受底层计算能力所提供的并行性。这直接表明在一个集群上运行的map reduce程序可能不是在另一个集群中运行的理想程序。因此,如果我们希望将我们的程序构建到一个精确的微调级别,我们需要对我们的集群有一个很好的了解。但实际上很少有人需要把它调整到这么高的水平。让我们把你的观点一个接一个:加速:这取决于你如何将你的输入分成不同的部分。这直接推断出并行性的数量(在人类控制中)。因此,正如我上面提到的,速度的提高直接取决于分割逻辑如何利用集群。内存效率:主要取决于Map器逻辑和还原器逻辑的内存效率。可伸缩性:这主要是出于担心。您可以看到,map-reduce模型已经具有很高的可伸缩性,人们很少会想到多走一英里。所以总体来说,map-reduce程序的效率很少受到关注(甚至速度和内存)。实际上,最有价值的衡量标准是产出的质量。i、 你的分析数据有多好(代替市场营销、研究等)
1条答案
按热度按时间7lrncoxx1#
在具体解决您的问题之前,让我们重温map-reduce模型,看看它试图解决的真正问题是什么。你可以参考这个答案(由我/当然你可以参考其他好的答案为同一个问题),得到一个Map减少模型的想法。
那么它真正想要解决的是什么呢?它导出了一个通用模型,可用于解决需要处理大量数据(通常以gbs甚至peta字节为单位)的大量问题。该模型的实质是易于并行化,甚至可以很容易地将执行分布在多个节点之间。这篇文章(我写的)对整个模型有一些详细的解释。
那么让我们来回答你的问题,你问的是基于速度、内存效率和可伸缩性来衡量map reduce程序的效率。
说到这里,map-reduce程序的效率总是取决于它在多大程度上享受底层计算能力所提供的并行性。这直接表明在一个集群上运行的map reduce程序可能不是在另一个集群中运行的理想程序。因此,如果我们希望将我们的程序构建到一个精确的微调级别,我们需要对我们的集群有一个很好的了解。但实际上很少有人需要把它调整到这么高的水平。
让我们把你的观点一个接一个:
加速:这取决于你如何将你的输入分成不同的部分。这直接推断出并行性的数量(在人类控制中)。因此,正如我上面提到的,速度的提高直接取决于分割逻辑如何利用集群。
内存效率:主要取决于Map器逻辑和还原器逻辑的内存效率。
可伸缩性:这主要是出于担心。您可以看到,map-reduce模型已经具有很高的可伸缩性,人们很少会想到多走一英里。
所以总体来说,map-reduce程序的效率很少受到关注(甚至速度和内存)。实际上,最有价值的衡量标准是产出的质量。i、 你的分析数据有多好(代替市场营销、研究等)