哪些指标可衡量MapReduce应用程序的效率?

时间:2018-09-25 03:15:58

标签: performance hadoop mapreduce bigdata metrics

我编写了一个MapReduce应用程序,该应用程序可以在6个计算机节点上运行。 我确定我的MapReduce算法(在计算机集群上运行)优于顺序算法(在单台计算机上运行),但是我认为这并不意味着我的MapReduce算法足够有效,对吧?

我四处搜索并发现:速度,规模和规模指标。在衡量MapReduce应用程序的效率时,我们通常会考虑这些指标吗?我们需要考虑任何指标吗?

非常感谢您。

1 个答案:

答案 0 :(得分:0)

在专门解决您的问题之前,让我们重新审视map-reduce模型,看看它试图解决的真正问题是什么。您可以参考这个answer(我/当然,对于相同的问题,您可以参考其他好的答案),以了解map-reduce模型的想法。

那么它真正试图解决的是什么?它推导了一个通用模型,该模型可用于解决需要处理大量数据(通常以GB甚至Peta Bytes为单位)的大量问题。这个模型真正的优点是,它可以轻松并行化,甚至可以轻松分布执行节点数article(由我本人)对整个模型进行了详细的解释。

因此,让我们开始您的问题,您要问的是基于速度,内存效率和可伸缩性来衡量缩小地图程序的效率。

说到这一点,简化程序的效率始终取决于底层计算给出的并行性的程度。 >电源。这直接表明在一个群集上运行的map-reduce程序可能不是在另一群集上运行的理想程序。因此,如果我们希望将程序构建到精确调整的水平,则需要对集群有个好主意。但是实际上它很少有人需要将它调到如此高的水平。

让我们一一阐述您的观点:

  • 加速: 这取决于您如何将输入分成不同的部分。这直接推导了并行度(在人为控制下)。因此,如上所述,提速直接取决于拆分逻辑将如何利用群集。

  • 内存效率: 这主要取决于映射器逻辑和化简器逻辑的内存效率。

  • 可扩展性: 这主要是出于关注。您会看到map-reduce模型已经可以高度扩展到一个人们很少会想到的额外里程。

因此,总的来说,地图缩减程序的效率很少要关注的(甚至速度和内存)。实际上,最有价值的指标是其输出的质量。即您的分析数据有多好。 (代替市场营销,研究等)