将MapReduce Counter值设置为某个值

时间:2012-05-10 20:32:13

标签: hadoop mapreduce

我没有看到一开始就设置MapReduce作业的计数器值的简单方法? map / reduce任务中的计数器增量原子操作也是?

2 个答案:

答案 0 :(得分:2)

通过在开头设置计数器值不确定你的意思 - 你的意思是将计数器值初始化为0以外的其他东西(这样做的用例是什么?)。

对于原子操作,计数器是针对每个任务单独累积的。任务完成后,计数器值将提交到全局总计(仅提交已提交的任务,因此,如果您有两个任务以推测方式运行,则只提交成功的任务计数器。

答案 1 :(得分:1)

在创建计数器时设置值,如:

  private AtomicInteger pages = new AtomicInteger(0);  // total pages fetched

如果您希望稍后在某个时间点执行此操作,请在循环中使用incrCounter()方法。 (第一个更好。)

计数器由与之关联的任务维护,并定期维护 发送到tasktracker然后发送到jobtracker,以便它们可以全局聚合。因此每个map task / reduce任务都有自己的计数器变量副本。如果作业成功,则会在输出摘要中生成并提供所有计数器的总数。