在hadoop有超过120个柜台

时间:2012-08-27 10:23:42

标签: hadoop limit counter

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

5 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:4)

在Hadoop 2中,此配置参数称为

mapreduce.job.counters.max
但是,

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

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

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

使用2.6.0和2.7.1进行测试。

答案 2 :(得分:0)

para由配置文件设置,而下面的段落将生效

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 

答案 3 :(得分: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

答案 4 :(得分:-1)

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

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

注意:xy是基于您的环境/要求的自定义值。