在map reduce job中,如果设置4个reducer来实现reducer作业。这样,最终输出将生成4个零件文件。比如:
part-r-00001 part-r-00002 part-r-00003 part-r-00004
在这种情况下,如何获得合并价值?如果我在计算一个最大值?上面的例子显然会生成4个不同的文件,返回4个不同的值。
6l7fqoea1#
简单的回答是 use one reducer 对你来说。但是,当Map器的输出太多,单个减速机无法处理时,我建议您使用two round mapreduce 工作。在第一轮中,您将在每个reduce任务中输出合并值。在第二轮中,使用一个reducer来计算第一轮缩减数据集的合并值。如果这些仍然不能解决您的问题,也许您应该看看hadoop map reduce中的分组比较器
use one reducer
mapreduce
1条答案
按热度按时间6l7fqoea1#
简单的回答是
use one reducer
对你来说。但是,当Map器的输出太多,单个减速机无法处理时,我建议您使用
two round
mapreduce
工作。在第一轮中,您将在每个reduce任务中输出合并值。在第二轮中,使用一个reducer来计算第一轮缩减数据集的合并值。
如果这些仍然不能解决您的问题,也许您应该看看hadoop map reduce中的分组比较器