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