如何禁用hadoop combiner?

时间:2013-12-18 18:35:28

标签: hadoop configuration mapreduce yarn combiners

在wordcount示例中,组合器在

中显式设置

job.setCombinerClass(IntSumReducer.class);

我想禁用组合器,以便组合器不处理mapper的输出。有没有办法使用MR配置文件(即不修改和重新编译wordcount代码)?

由于

1 个答案:

答案 0 :(得分:1)

假设这是您的命令行

hadoop jar your_hadoop_job.jar your_mr_driver \
command_line_arg1 command_line_arg2 command_line_arg3 \
-libjars all_your_dependency_jars

以下参数

  • command_line_arg1
  • command_line_arg2
  • command_line_arg3

将分别以arg [0],arg [1]和arg [3]的形式传递给main方法。假设arg [0]和arg [1]用于识别输入和输出文件夹。您可以使用arg [3]传递一个布尔标志,如('1'或'true'或'yes'),以了解是否要使用组合器并相应地设置组合器。下面的示例(默认...它不会设置组合器类)

if ( "YyesTrue1".contains(arg[3])){
    job.setCombinerClass(IntSumReducer.class);
}