超过120个计数器Hadoop中(More than 120 counters in hadoop)

2019-06-27 10:46发布

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

Answer 1:

您可以覆盖该属性mapred-site.xml你的JT,TT,客户端节点,但要确保这将是一个全系统的修改:

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

然后重新启动群集上映射缩减服务。



Answer 2:

Hadoop中2,该配置参数被称为

mapreduce.job.counters.max

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

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

在您的映射或减速的设置()方法来获取设置生效。

测试了2.6.0和2.7.1。



Answer 3:

该段由配置文件设置,而下面段将生效

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 


Answer 4:

万一其他人加入这个面孔,我们也做了同样的问题:从提高柜台MRJob 。

为了提高计数器的数量,增加emr_configurationsmrjob.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


Answer 5:

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

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

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



文章来源: More than 120 counters in hadoop