hadoop - Hadoop Map/Reduce作业进度计数器

标签 hadoop mapreduce cloudera

我有一个map / reduce作业,我想跟踪该作业的map阶段中处理的记录数。为此,我在 map 阶段使用了自定义计数器,并将它们加1。另外,我每30秒监视一次这些计数器。

但是,当我使用Job Client检查作业计数器的进度时,我查看的是处理的记录数甚至不是每个周期性间隔。有时,没有变化,有时却没有。

context.getCounter(ApplicationCounters.TOTAL_NUMRECORDS_PROCESSEDBY_MAP)
            .increment(1);

我的hadoop群集心跳间隔为15秒。这并不意味着,我应该定期进行定期更新。

最佳答案

确保您的工作已完成,建议使用waitForCompletion。在运行时查询计数器可能会导致奇怪的结果。

The counters are globally aggregated by the framework at the end of the job.

关于hadoop - Hadoop Map/Reduce作业进度计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984132/

相关文章:

java - 如何在Spark SQL中格式化整数?

hadoop - map 阶段不读取中间结果

java - MiniMRYarnCluster,在本地运行MR

hadoop - 在 HDFS 中创建文件但不附加任何内容

hadoop - HDFS fsck 命令显示 '/' 的运行状况已损坏

hadoop - 在YARN上调整Hadoop作业执行

hadoop - 部分聚合与组合器哪个更快?

java - hadoop NoClassDefFoundError 尽管 DistributedCache 设置

hadoop - 使用 Java 代码运行简单的 Hadoop 命令

hadoop - oozie作业提交失败,并检查您的mapreduce.framework.name配置和相应的服务器地址