在我的reducer中,我需要由映射器处理的输入“行”的总数。
示例输入:
因此,在所有Reducers中,我需要访问Mappers 加上所发布的总行数(在本例中为3)。
我假设我需要多个工作或将一些映射器和/或缩减器链接在一起,但我不确定正确的方法。
注意:这不是一个简单的平均程序,所以我不能只使用映射器中的一个键。
答案 0 :(得分:4)
job.getCounters().findCounter(TaskCounter.MAP_INPUT_RECORDS).getValue()
获取记录总数。
答案 1 :(得分:2)
这里你需要的是一个柜台:https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/Counters.html
Hadoop预定义了一组标准计数器(包括映射器处理的行数,这可能是您正在寻找的),但您也可以定义自己的自定义计数器。以下是如何执行此操作的示例:Accessing a mapper's counter from a reducer
答案 2 :(得分:0)