如何禁用hadoop组合器?

gkl3eglg  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(410)

在wordcount示例中,组合器显式设置为
job.setcombinerclass(intsumreducer.class);
我想禁用合并器,这样Map器的输出就不会被合并器处理。有没有一种方法可以使用mr配置文件(即不修改和重新编译wordcount代码)来实现这一点?
谢谢

ecfdbz9o

ecfdbz9o1#

假设这是您的命令行

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

以下参数
命令行\u arg1
命令行\u arg2
命令行\u arg3
将分别作为arg[0]、arg[1]和arg[3]传递给主方法。假设arg[0]和arg[1]用于标识输入和输出文件夹。您可以使用arg[3]传递布尔标志,如('1'或'true'或'yes'),以了解是否要使用combiner并相应地设置combiner。下面的示例(默认值…它不会设置combiner类)

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

相关问题