我是hadoop新手。我正在尝试在我的reducer中编写一个自定义计数器。我找到了一个使用自定义计数器的示例,但它是在Hadoop1.x中。我在hadoop2.x中找不到合适的计数器解决方案,有人能帮我解决这个问题吗。。?提前谢谢
alen0pnh1#
通过查看2.x的代码,我相信它的工作方式与早期版本的示例相同计数器由org.apache.hadoop.mapreduce.counters.abstractcounters维护当存在对缓存中不存在的计数器的请求时,findcounter会动态生成一个新的计数器
public synchronized C findCounter(Enum<?> key) { C counter = cache.get(key); if (counter == null) { counter = findCounter(key.getDeclaringClass().getName(), key.name()); cache.put(key, counter); } return counter; }
(它使用枚举类名作为此枚举定义的计数器的组名)传递给map和reduce方法的org.apache.hadoop.mapreduce.context对象实现getcounter(enum)方法
1条答案
按热度按时间alen0pnh1#
通过查看2.x的代码,我相信它的工作方式与早期版本的示例相同
计数器由org.apache.hadoop.mapreduce.counters.abstractcounters维护
当存在对缓存中不存在的计数器的请求时,findcounter会动态生成一个新的计数器
(它使用枚举类名作为此枚举定义的计数器的组名)
传递给map和reduce方法的org.apache.hadoop.mapreduce.context对象实现getcounter(enum)方法