我有一个1GB的文件。它是一个简单的文本文件。我有一个 3 节点群集。如果我编写一个Java MapReduce程序来计算每个单词的出现,那么如何调用Mappers Map((和调用Reducers reduce方法?
首先,集群的大小并不重要。这将导致一些冗余调用,只是为了容错,但我想这不是你的问题。因此,如果您有 1 节点集群或 100 节点集群,则 map 和 reduce 任务的数量将相同,结果将相同。
现在,对于地图任务的数量,这取决于一些因素,例如块的大小和输入的格式。您可以在本文中找到有关映射器数量的详细信息。
现在,对于调用reduce方法的次数,这更容易定义。在字数统计程序中,映射器的输出键是一个单词。因此,每个不同的单词最终都会以对reduce方法的不同调用结束。换句话说,调用 reduce 方法的次数等于数据集中存在的不同单词的数量。