计数器

计数器(包括内置计数器和用户定义的计数器)用于计算作业执行过程中的各种数值。 例如,内置计数器可监控 map/reduce 流程每个阶段已处理记录的数量和输出记录的数量。 您还可以使用任务上下文中 Counter 对象的getCounter() 方法定义自己的计数器。 您可以使用Counter.increment(long) 方法在本地递增用户定义的计数器。 任务执行结束后,计数器的值将保存在 <task><id>.cnt 文件中。 任务完成后,计数器会汇总为总值,保存在total.cnt文件中,并显示在日志main.log)中。

上述WordCount示例的计数器摘要如下:
JOB_COUNTERS
Launched map tasks=3
Launched reduce tasks=3
MAPPER_COUNTERS
Map input bad records=0
Map input records=3
Map output records=10
REDUCER_COUNTERS
Reduce input groups=6
Reduce input records=10
Reduce output records=6
以下是内置计数器的完整列表:
表 1. 内置计数器
计数器
JOB_COUNTER 启动地图任务。
启动减少任务。
启动联合任务。
映射器计数器 地图输入记录。
地图输入不良记录。
地图输出记录。
组合计数器 合并输入记录。
合并输出记录。
计数器 减少输入记录。
减少输入组。
减少输出记录。