我可以在mapreduce.tasks=1的情况下在mapreduce.tasks=1的情况下找到最小,最大或平均吗?



我试图了解如何使用 mapreduce 找到一个非常大的文件的最小值、最大值、平均值。将减少任务的数量设置为 1 是一个明显的解决方案,但对于非常大的文件来说并不是最佳选择。我也在考虑编写一个链接MR作业,但最终,你最终在最终作业中使用了一个化简器。有人可以阐明一下,关于任何其他方法。

谢谢

我认为在这里使用 1 个化简器没有任何问题,无论您的输入数据集有多大。为此,您应该使用合并器功能,该功能应返回其本地最大值、本地最小值、本地总和和计数,并传递给单个化简器。这样,进入化简器的数据量非常少(与映射器的数量成正比)。一旦这个小数据到达单个化简器,您就可以找到全局最大值和最小值,并将总和除以总数。

您需要编写逻辑来计算化简器类中的最小值、最大值或平均值。此外,我相信找出一个非常大的文件的最小值,最大值,平均值无论如何都会生成一个输出文件。

相关内容

最新更新