将MapReduce计数器值设置为某个值



我没有看到在开始时设置MapReduce作业计数器值的直接方法?此外,映射/归约任务中的计数器增量是原子操作吗?

不确定一开始

设置计数器值是什么意思 - 你的意思是在 0 以外的位置初始化计数器值(你这样做的用例是什么?

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

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

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

或者,如果您想稍后在某个时候执行此操作,请在循环中使用incrCounter()方法。(第一个更好。

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

相关内容

  • 没有找到相关文章

最新更新