hadoop中超过120个计数器

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

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

xwbd5t1u

xwbd5t1u1#

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

  1. <configuration>
  2. ...
  3. <property>
  4. <name>mapreduce.job.counters.limit</name>
  5. <value>500</value>
  6. </property>
  7. ...
  8. </configuration>

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

gdx19jrr

gdx19jrr2#

如果其他人也面临同样的问题,我们只需要添加这个:增加mrjob的计数器。
要增加计数器的数量,请添加 emr_configurations 给你的 mrjob.conf (或将其作为配置参数传递给mrjob):

  1. runners:
  2. emr:
  3. emr_configurations:
  4. - Classification: mapred-site
  5. Properties:
  6. mapreduce.job.counters.max: 1024
  7. mapreduce.job.counters.counter.name.max: 256
  8. mapreduce.job.counters.groups.max: 256
  9. mapreduce.job.counters.group.name.max: 256
4jb9z9bj

4jb9z9bj3#

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

  1. 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 .

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

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

q3qa4bjr

q3qa4bjr5#

段落由配置文件设置,下面的段落将生效

  1. mapreduce.job.counters.max=1000
  2. mapreduce.job.counters.groups.max=500
  3. mapreduce.job.counters.group.name.max=1000
  4. mapreduce.job.counters.counter.name.max=500

相关问题