Hadoop 如何获取Reducer中映射器输出的记录数

Hadoop 如何获取Reducer中映射器输出的记录数,hadoop,mapreduce,Hadoop,Mapreduce,我需要知道映射器在Reducer中输出的记录数。只有一个减速器,所以我想这可以简化事情 我的第一个想法是在映射器中增加一个计数器,然后将其放入reducer,后来我发现这样一个计数器已经存在,但它似乎“不打算”从reducer读取,而只是从驱动程序读取 我应该使用计数器以及如何正确使用它,还是有其他方法?是的,您可以利用一些固有的计数器,甚至在您的MR工作结束时将其丢弃。在上搜索“映射输出记录”,以查看已读取记录总数的示例 您还可以创建自己的计数器,如中的“WordsByLength”所示 在映

我需要知道映射器在Reducer中输出的记录数。只有一个减速器,所以我想这可以简化事情

我的第一个想法是在映射器中增加一个计数器,然后将其放入reducer,后来我发现这样一个计数器已经存在,但它似乎“不打算”从reducer读取,而只是从驱动程序读取


我应该使用计数器以及如何正确使用它,还是有其他方法?

是的,您可以利用一些固有的计数器,甚至在您的MR工作结束时将其丢弃。在上搜索“映射输出记录”,以查看已读取记录总数的示例


您还可以创建自己的计数器,如中的“WordsByLength”所示

在映射程序代码中添加一个手动计数器,并从映射程序清理方法中,将其作为还原程序发出。您可以聚合此给定键的值。谢谢您的回答,但我需要知道在还原程序中迭代值时的记录数,因此这是不够的……您能否澄清“记录数”。这不是映射程序处理的记录总数吗?为此,您可以将自定义键设置为排序顺序中的第一个键,以便它首先到达减速机。您可以将其存储到一个局部变量。@ArunAK我对映射器发出的记录数感兴趣。并非所有映射程序获得的记录都必须发出。是的,我知道我可以做这样的变通,但如果可能的话,我会选择使用计数器,因为它看起来更优雅、更容易理解。:)但我不想在作业结束时得到计数器,而是在减速机中,正如我解释的那样。