2

在 wordcount 示例中,组合器显式设置在

job.setCombinerClass(IntSumReducer.class);

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

谢谢

4

1 回答 1

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);
}
于 2013-12-18T19:53:22.350 回答