Hadoop MapReduce中的合并器逻辑是否与Reducer逻辑相同?或者是否有组合逻辑可能与Reducer逻辑不同的情况?组合器逻辑是否总是与减速器逻辑相同?
1
A
回答
-1
在大多数情况下,组合器逻辑与减速器逻辑相同。虽然我们可能有与reducer不同的组合器逻辑。
组合器必须与减速器具有相同的输入类型。
合并器将结合每个地图输出的结果。由于这个原因,一些值在映射阶段本身被合并,并且由于较少的值需要从映射器遍历到还原器,因此网络流量急剧减少。
0
不可以。您可以指定所需的任何组合器功能。我建议你在行动书中阅读Mahout,在第32页,你可能会发现一些信息。例如:
public class MaxTemperatureWithCombiner {
public static void main(String[] args) throws IOException {
if (args.length != 2) {
System.err.println("Usage: MaxTemperatureWithCombiner <input path> " +
"<output path>");
System.exit(-1);
}
JobConf conf = new JobConf(MaxTemperatureWithCombiner.class);
conf.setJobName("Max temperature");
FileInputFormat.addInputPath(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
conf.setMapperClass(MaxTemperatureMapper.class);
conf.setCombinerClass(MaxTemperatureReducer.class);
conf.setReducerClass(MaxTemperatureReducer.class);
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
JobClient.runJob(conf);
}
}
请注意,您拨打conf.setCombinerClass(MaxTemperatureReducer.class); 所以你可以指定你想要的任何组合器功能。通常组合器和减速器具有相同的逻辑,但并非总是如此。
1
- 合成器类&减速器类可能会也可能不会相同,这取决于您的要求。
但两者合&减速器具有通过延伸
Reducer
例如实现降低()方法
public void reduce(Key key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
如果两个组合器&减速器是不同的,设置这些类如下面
job.setCombinerClass(YourCombiner.class); job.setReducerClass(YourReducer.class);
相关问题
- 1. 逻辑总是失败
- 2. 总是相结合,如果和逻辑与声明中的R
- 3. LABVIEW:是否有逻辑门或逻辑门的组合给出以下内容
- 4. 这在逻辑上是相同的吗?
- 5. 与服务器端逻辑
- 6. 布尔逻辑都是布尔逻辑相等
- 7. oo问题 - 混合控制器逻辑和业务逻辑
- 8. 程序逻辑是否应该强化数据库逻辑?
- 9. 计算器逻辑
- 10. 混合逻辑
- 11. 控制器逻辑与服务/业务层逻辑
- 12. 总计逻辑值
- 13. 蟒itertools组合逻辑
- 14. 组合逻辑时序
- 15. ASIC设计 - 组合逻辑
- 16. RX java组合逻辑
- 17. Mysql组合查询逻辑
- 18. 金额逻辑组合
- 19. Verilog的组合逻辑
- 20. 是逻辑回归大分类器?
- 21. 查询逻辑与程序逻辑
- 22. Java逻辑XOR(“^”)与逻辑NOT(“!”)
- 23. 将嵌套列表与逻辑组合
- 24. 与组合逻辑电路通信
- 25. 该代码是业务逻辑还是表示逻辑?
- 26. 逻辑错误与否?
- 27. React-native Redux应该将业务逻辑放在行动还是减速器中
- 28. 与逻辑
- 29. Numpy.where与逻辑
- 30. 与逻辑
的可能的复制[组合器和减速器可以是不同的?](http://stackoverflow.com /问题/ 11731770 /组合器和减速器-可待不同) –