8

Hadoop 计数器大小有限制。默认为 120。我尝试使用配置“mapreduce.job.counters.limit”来改变它,但它不起作用。我看过源代码。这就像“org.apache.hadoop.mapred.Counters”类中的 JobConf 实例是私有的。以前有人见过吗?你的解决方案是什么?谢谢 :)

4

5 回答 5

8

您可以在您的 JT、TT、客户端节点上覆盖该属性,mapred-site.xml但请确保这将是系统范围的修改:

<configuration>
  ...
  <property>
    <name>mapreduce.job.counters.limit</name>
    <value>500</value>
  </property>
  ...
</configuration>

然后重新启动集群上的 mapreduce 服务。

于 2012-08-28T09:51:53.287 回答
6

在 Hadoop 2 中,这个配置参数被称为

mapreduce.job.counters.max

但是,在命令行或配置对象中设置它是不够的。您需要调用静态方法

org.apache.hadoop.mapreduce.counters.Limits.init()

在 mapper 或 reducer 的 setup() 方法中使设置生效。

用 2.6.0 和 2.7.1 测试。

于 2015-11-13T20:20:11.607 回答
1

para 由配置文件设置,下面的 paras 将生效

mapreduce.job.counters.max=1000 
mapreduce.job.counters.groups.max=500 
mapreduce.job.counters.group.name.max=1000 
mapreduce.job.counters.counter.name.max=500 
于 2016-03-01T06:43:45.353 回答
0

只需添加这个以防其他人面临与我们相同的问题:使用MRJob增加计数器。

要增加计数器的数量,请添加emr_configurations到您的mrjob.conf(或将其作为配置参数传递给 MRJob):

runners:
  emr:
    emr_configurations:
      - Classification: mapred-site
        Properties:
          mapreduce.job.counters.max: 1024
          mapreduce.job.counters.counter.name.max: 256
          mapreduce.job.counters.groups.max: 256
          mapreduce.job.counters.group.name.max: 256
于 2016-10-21T13:42:50.187 回答
-1

我们可以将限制自定义为仅针对特定作业的命令行选项,而不是在mapred-site.xml.

-Dmapreduce.job.counters.limit=x
-Dmapreduce.job.counters.groups.max=y

注意:x并且y是基于您的环境/要求的自定义值。

于 2015-10-13T14:09:21.640 回答