我有多个输入,所以我有两个映射器。我也有一个组合器:
class JoinCombiner extends MapReduceBase implements
Reducer<TextPair, Text, TextPair, Text> {
@Override
public void reduce(TextPair key, Iterator<Text> values,
OutputCollector<TextPair, Text> output, Reporter reporter)
throws IOException {
Text nodeId = new Text(values.next());
while (values.hasNext()) {
Text node = values.next();
TextPair outValue = new TextPair(nodeId.toString(), "0");
output.collect(outValue , node);
}
}
}
当我使用这个类作为 Reducer 时——所有的话都很好。但如果我将它用作组合器 - 我在日志中有以下信息:
Combine input records=6
Combine output records=0
Reduce input groups=0
Reduce shuffle bytes=30
Reduce input records=0
Reduce output records=0
因此,combiner 没有输出 -> reduce 没有输入。我不明白为什么。如果您有想法,请做出一些解释))谢谢