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