我有一个映射/减少作业,我想跟踪该作业的映射阶段处理的记录数。为此,我在映射阶段使用自定义计数器,并将它们递增1。此外,我每隔30秒就会监视这些计数器。
然而,当我使用作业客户端检查作业计数器进度时,我看到的是处理的记录数量并不是每个周期性间隔都是偶数。有时,没有变化,有时有。
context.getCounter(ApplicationCounters.TOTAL_NUMRECORDS_PROCESSEDBY_MAP)
.increment(1);
我的hadoop集群心跳间隔是15秒。这不意味着,我应该定期得到一致的更新。
请确保您的作业已经完成,建议使用waitForCompletion。在运行时查询计数器可能会导致奇怪的结果。
计数器由框架在工作。