如何知道Hadoop reducer分配的记录

时间:2014-10-29 11:56:00

标签: hadoop mapreduce

我使用自定义分区程序随机分配记录到reducer。然后减速器开始处理。

有没有办法可以知道在reducer开始工作之前为每个reducer分配了多少条记录?

1 个答案:

答案 0 :(得分:0)

分区程序不会随机为减速器分配记录,它具有预定义逻辑

当我们编写自定义分区程序时,我们编写逻辑如何在reducers之间分配记录

例如,如果您处理的数据包含一个字段年龄

您可以决定如何在reducer处理输入

首先,您必须配置否。您想要的减速器可以在地图减少工作的驱动程序中配置的特定工作

假设您配置了3个减速器。

在编写自定义分区程序时,您将为实例定义逻辑

       if(ageInt <=20){               
            return 0;
        }
        //else if the age is between 20 and 50, assign partition 1
        if(ageInt >20 && ageInt <=50){

            return 1 % numReduceTasks;
        }
        //otherwise assign partition 2
        else
            return 2 % numReduceTasks;

所有那些属于20岁以下的类别的记录都会转到第一个减速器。

即使在执行工作之前,您也可以根据您的情况计算所有记录数。