【问题标题】:Forcing Hadoop to run the application with multiple reducers强制 Hadoop 使用多个 reducer 运行应用程序
【发布时间】:2014-01-08 21:01:20
【问题描述】:

我有一个 Hadoop Map-reduce 应用程序,其代码中包含以下行(将 reducer 的数量设置为 1)。

job.setNumReduceTasks(1)

我想用多个 reducer 运行这个应用程序,所以我尝试将以下 XML 代码添加到 $HADOOP_CONF_DIR/mapred-site.xml

 <property>
  <name>mapreduce.job.reduces</name>
  <value>2</value>
 </property>

但是,代码仍然使用 1 个 reducer 运行。 有没有办法强制hadoop应用程序使用2个reducer运行或者应用程序代码的优先级总是更高?

【问题讨论】:

    标签: hadoop configuration mapreduce reduce hadoop-yarn


    【解决方案1】:

    在这种情况下,您需要修改代码,因为对 job.setNumReduceTasks(1) 的调用优先于任何配置或命令行传递的属性

    【讨论】:

      【解决方案2】:

      您可以在提交应用程序时(通过命令行)传递reducer 的数量。通过命令行传递配置参数的优先级高于通过应用程序代码(第二高优先级)和通过 xml 文件(第三优先级)传递它

      使用 -D 选项并设置值。

      例如: $ bin/hadoop jar /usr/joe/wordcount.jar org.myorg.WordCount /usr/joe/wordcount/input /usr/joe/wordcount/output -D mapred.reduce.tasks=2

      【讨论】:

        猜你喜欢
        • 2015-09-18
        • 1970-01-01
        • 2015-06-11
        • 2016-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        相关资源
        最近更新 更多