当我尝试以编程方式创建许多作业计数器时,我正在使用 Hadoop map-reduce 并得到了 CountersExceededException。我知道我可以通过配置文件增加允许的计数器数量,但有谁知道:
a) 为什么 map-reduce 计数器有限制
和
b) 增加 map-reduce 计数器的最大数量是好还是坏?
我正在使用 hadoop 0.20.2
请参阅这篇文章中关于计数器的部分。
计数器
计数器代表全局计数器,由 Map/Reduce 框架或应用程序定义。应用程序可以定义任意计数器并在 map 和/或 reduce 方法中更新它们。这些计数器然后由框架全局聚合。
计数器适用于跟踪少数重要的全局信息。它们绝对不是为了聚合应用程序的非常细粒度的统计信息。计数器非常昂贵,因为 JobTracker 必须在整个应用程序期间维护每个 map/reduce 任务的每个计数器。
以防万一你想增加计数器的最大数量。
最后我看到了代码,最大数量的计数器已经被硬编码在代码中并且不可配置。请查看我一段时间前写的博客条目以获取更多详细信息,并查看最新代码以检查是否已对其进行修改以使其可配置。