hadoop中超过120个计数器

j2datikz  于 2021-06-03  发布在  Hadoop
关注(0)|答案(5)|浏览(577)

hadoop计数器大小有限制。默认值是120。我尝试使用“mapreduce.job.counters.limit”配置来更改这一点,但它不起作用。我看过源代码了。这就像类“org.apache.hadoop.mapred.counters”中的jobconf示例是私有的。以前有人见过吗?你的解决方案是什么?泰铢:)

xwbd5t1u

xwbd5t1u1#

可以在中重写该属性 mapred-site.xml 在jt、tt、client节点上,但请确保这是一个系统范围的修改:

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

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

gdx19jrr

gdx19jrr2#

如果其他人也面临同样的问题,我们只需要添加这个:增加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
4jb9z9bj

4jb9z9bj3#

在hadoop2中,这个配置参数被称为

mapreduce.job.counters.max

不过,在命令行或配置对象中设置它是不够的。您需要调用静态方法 org.apache.hadoop.mapreduce.counters.Limits.init() 在mapper或reducer的setup()方法中,使设置生效。
用2.6.0和2.7.1测试。

ykejflvf

ykejflvf4#

我们可以将限制自定义为仅用于特定作业的命令行选项,而不是在 mapred-site.xml .

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

注: x 以及 y 是基于您的环境/需求的自定义值。

q3qa4bjr

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

相关问题