如何在MapReduce引擎中创建自定义计数器?

时间:2013-12-12 19:36:29

标签: hadoop mapreduce

我试图用我的计数器来检查Maptask.run和ReduceTask.run的操作时间,使用全局计数器甚至LOG.info()。

在伪分布式模式下,使用我在MapTask.java和ReduceTask.java中修改的构建的mapreduce-core-snapshot.jar来实现我的目标,它完全符合我的预期。

但是,在真正的集群中,我注入的源代码不起作用,只显示系统默认的计数器变量。

我认为伪分布式和集群模式之间存在不同的日志逻辑或安全问题,但我不确定。

有没有人可以让我知道它?

谢谢!

1 个答案:

答案 0 :(得分:1)

Q:How can I make a custom counter 

并且:

public static enum MyGroupName {
   MyGroupName;
   MYCOUNTTWO;
};

MyMap extends Mapper<..>{
map(...){
// ... your code 
// get counter 
counter one=context.getCounter(MyGroupName, MyGroupName);
// set counter 
context.incrCounter(MyGroupName.MyGroupName,TIMEOFTASK);
}

}