【问题标题】:org.apache.hadoop.mapreduce.counters.LimitExceededException: Too many counters: 121 max=120org.apache.hadoop.mapreduce.counters.LimitExceededException:计数器太多:121 max=120
【发布时间】:2014-01-03 07:53:47
【问题描述】:

我正在运行一个有少量计数器和多输出的 hadoop 作业(来自 oozie)。

我收到如下错误: org.apache.hadoop.mapreduce.counters.LimitExceededException:计数器太多:121 max=120

然后我删除了所有具有计数器的代码,并将 mout.setCountersEnabled 设置为 false。 并且还在 hadoop 配置中将最大计数器设置为 240。

现在我仍然遇到同样的错误 org.apache.hadoop.mapreduce.counters.LimitExceededException:计数器太多:241 max=240

我该如何解决这个问题? 是否有任何隐藏计数器存在的可能性? 我怎样才能弄清楚之前有哪些计数器超过 240 ? (在我可以打印任何东西之前,这个过程似乎已经停止了?)

谢谢, 新松

【问题讨论】:

  • 这篇文章有用吗? mapredit.blogspot.gr/2012/12/…
  • 我明白了。因为是多输出,所以默认每个多输出都有一个计数器。我的更改后多输出更多,因此超出错误。

标签: java apache hadoop mapreduce oozie


【解决方案1】:

我使用以下方法解决了这个问题: vi $HADOOP_HOME/conf/mapred-site.xml

<property>
    <name>mapreduce.job.counters.limit</name>
    <!--<value>120</value>-->
   <value>20000</value>
    <description>Limit on the number of counters allowed per job. The default value is 200.</description>
</property>

【讨论】:

  • 是否将计数器限制设置得太高。我面临同样的问题,价值为 2000。我可以将其增加到 10000,假设它在生产中是安全的。
  • 对于 hadoop 2,它称为 mapreduce.job.counters.max
【解决方案2】:

我明白了。因为是多输出,所以每个多输出默认都有一个计数器。我的更改后多输出更多,所以它得到了超出错误。

【讨论】:

    猜你喜欢
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多