有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_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
Answer 5:
我们可以自定义的,而不是在交换限制为仅针对特定工作的命令行选项, mapred-site.xml
。
-Dmapreduce.job.counters.limit=x
-Dmapreduce.job.counters.groups.max=y
注: x
和y
是基于您的环境/需求自定义值。
文章来源: More than 120 counters in hadoop