在wordcount示例中,组合器明确设置为如何禁用hadoop组合器?
job.setCombinerClass(IntSumReducer.class);
我想禁用组合器,以便组合器不处理映射器的输出。有没有办法做到这一点使用MR配置文件(即不修改和重新编译wordcount代码)?
感谢
在wordcount示例中,组合器明确设置为如何禁用hadoop组合器?
job.setCombinerClass(IntSumReducer.class);
我想禁用组合器,以便组合器不处理映射器的输出。有没有办法做到这一点使用MR配置文件(即不修改和重新编译wordcount代码)?
感谢
想这是你的命令行
hadoop jar your_hadoop_job.jar your_mr_driver \
command_line_arg1 command_line_arg2 command_line_arg3 \
-libjars all_your_dependency_jars
这里下列参数
将分别作为arg [0],arg [1]和arg [3]传递给您的主方法。假定arg [0]和arg [1]用于识别输入和输出文件夹。你可以使用arg [3]传递一个布尔标志,如('1'或'true'或'yes')来理解你是否想要使用组合器并相应地设置组合器。下面的例子(默认...它不会设置组合器类)
if ("YyesTrue1".contains(arg[3])){
job.setCombinerClass(IntSumReducer.class);
}
好问题。当你实现'ToolRunner'时,它允许你通过'-D'标志传递mapreduce配置参数......但是我从来没有见过被改变的Mapper/Reducer/Combiner类的名字。 –
让我试着理解你的问题....所以你想要一种方式,以便你可以打开和关闭组合器通过一些外部机制?因此,如果你没有设置组合器在第一位......你将不会有一个组合器来处理......所以,如果你能确认你的问题,我可以有更好的答案给你... – javadevg
@ javadevg对于混淆抱歉。 “所以你想要一种方式,以便通过外部机制打开和关闭组合器?因此,如果你不把组合器放在第一位......你将不会有一个组合器来处理”是的,这是我的问题。 – polerto