我试图用我的计数器来检查Maptask.run和ReduceTask.run的操作时间,使用全局计数器甚至LOG.info()。
在伪分布式模式下,使用我在MapTask.java和ReduceTask.java中修改的构建的mapreduce-core-snapshot.jar来实现我的目标,它完全符合我的预期。
但是,在真正的集群中,我注入的源代码不起作用,只显示系统默认的计数器变量。
我认为伪分布式和集群模式之间存在不同的日志逻辑或安全问题,但我不确定。
有没有人可以让我知道它?
谢谢!
答案 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);
}
}