我有一个hadoop map reduce应用程序,其代码中有下面一行代码(将reducer的数量设置为1)。
job.setNumReduceTasks(1)
我想用多个reducer运行这个应用程序,所以我尝试将以下xml代码添加到 $HADOOP_CONF_DIR/mapred-site.xml
```
mapreduce.job.reduces
2
但是,代码仍然使用1个reducer运行。有没有办法强制hadoop应用程序使用2个reducer运行,或者应用程序代码的优先级总是更高?
2条答案
按热度按时间b0zn9rqh1#
提交应用程序时(通过命令行)可以传递还原数。通过命令行传递配置参数比通过应用程序代码(第二高优先级)和xml文件(第三优先级)传递配置参数具有最高优先级
使用-d选项并设置值。
e、 g:$bin/hadoop-jar/usr/joe/wordcount.jar org.myorg.wordcount/usr/joe/wordcount/input/usr/joe/wordcount/output-d mapred.reduce.tasks=2
ppcbkaq52#
在这种情况下,您需要修改代码
job.setNumReduceTasks(1)
优先于任何配置或命令行传递的属性