在我的应用程序中,我想根据键创建尽可能多的减速器作业。现在我当前的实现将所有键和值写入单个(reducer)输出文件中。所以为了解决这个问题,我使用了一个分区器,但我不能调用类。分区器应该在选择映射任务之后和选择减少任务之前调用,但它没有。分区器的代码如下
public class MultiWayJoinPartitioner extends Partitioner<Text, Text> {
@Override
public int getPartition(Text key, Text value, int nbPartitions) {
return (key.getFirst().hashCode() & Integer.MAX_VALUE) % nbPartitions;
return 0;
}
}
这段代码根据键和值对文件进行分区是否正确,并且输出将自动传输到减速器?