hadoop计数器大小有限制。默认值是120。我尝试使用“mapreduce.job.counters.limit”配置来更改这一点,但它不起作用。我看过源代码了。这就像类“org.apache.hadoop.mapred.counters”中的jobconf示例是私有的。以前有人见过吗?你的解决方案是什么?泰铢:)
xwbd5t1u1#
可以在中重写该属性 mapred-site.xml 在jt、tt、client节点上,但请确保这是一个系统范围的修改:
mapred-site.xml
<configuration> ... <property> <name>mapreduce.job.counters.limit</name> <value>500</value> </property> ... </configuration>
然后在集群上重新启动mapreduce服务。
gdx19jrr2#
如果其他人也面临同样的问题,我们只需要添加这个:增加mrjob的计数器。要增加计数器的数量,请添加 emr_configurations 给你的 mrjob.conf (或将其作为配置参数传递给mrjob):
emr_configurations
mrjob.conf
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
4jb9z9bj3#
在hadoop2中,这个配置参数被称为
mapreduce.job.counters.max
不过,在命令行或配置对象中设置它是不够的。您需要调用静态方法 org.apache.hadoop.mapreduce.counters.Limits.init() 在mapper或reducer的setup()方法中,使设置生效。用2.6.0和2.7.1测试。
org.apache.hadoop.mapreduce.counters.Limits.init()
ykejflvf4#
我们可以将限制自定义为仅用于特定作业的命令行选项,而不是在 mapred-site.xml .
-Dmapreduce.job.counters.limit=x -Dmapreduce.job.counters.groups.max=y
注: x 以及 y 是基于您的环境/需求的自定义值。
x
y
q3qa4bjr5#
段落由配置文件设置,下面的段落将生效
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
5条答案
按热度按时间xwbd5t1u1#
可以在中重写该属性
mapred-site.xml
在jt、tt、client节点上,但请确保这是一个系统范围的修改:然后在集群上重新启动mapreduce服务。
gdx19jrr2#
如果其他人也面临同样的问题,我们只需要添加这个:增加mrjob的计数器。
要增加计数器的数量,请添加
emr_configurations
给你的mrjob.conf
(或将其作为配置参数传递给mrjob):4jb9z9bj3#
在hadoop2中,这个配置参数被称为
不过,在命令行或配置对象中设置它是不够的。您需要调用静态方法
org.apache.hadoop.mapreduce.counters.Limits.init()
在mapper或reducer的setup()方法中,使设置生效。用2.6.0和2.7.1测试。
ykejflvf4#
我们可以将限制自定义为仅用于特定作业的命令行选项,而不是在
mapred-site.xml
.注:
x
以及y
是基于您的环境/需求的自定义值。q3qa4bjr5#
段落由配置文件设置,下面的段落将生效