在wordcount示例中,组合器显式设置为job.setcombinerclass(intsumreducer.class);我想禁用合并器,这样Map器的输出就不会被合并器处理。有没有一种方法可以使用mr配置文件(即不修改和重新编译wordcount代码)来实现这一点?谢谢
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); }
1条答案
按热度按时间ecfdbz9o1#
假设这是您的命令行
以下参数
命令行\u arg1
命令行\u arg2
命令行\u arg3
将分别作为arg[0]、arg[1]和arg[3]传递给主方法。假设arg[0]和arg[1]用于标识输入和输出文件夹。您可以使用arg[3]传递布尔标志,如('1'或'true'或'yes'),以了解是否要使用combiner并相应地设置combiner。下面的示例(默认值…它不会设置combiner类)