gpt4 book ai didi

hadoop - 如何在 Hadoop v 0.21 中调用 Partitioner

转载 作者:可可西里 更新时间:2023-11-01 16:21:04 27 4
gpt4 key购买 nike

在我的应用程序中,我想根据键创建尽可能多的 reducer 作业。现在,我当前的实现将所有键和值写入单个(reducer)输出文件中。所以为了解决这个问题,我使用了一个分区器,但我不能调用类。分区器应该在选择映射任务之后和选择 reduce task 之前调用,但它没有。分区器的代码如下

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;
}
}

这段代码是否正确,可以根据键和值对文件进行分区,输出会自动传输到 reducer??

最佳答案

您不会显示所有代码,但通常有一个类(称为“作业”或“MR”类)配置映射器、缩减器、分区器等,然后实际将作业提交给 hadoop .在此类中,您将拥有一个具有许多属性的作业配置对象,其中之一是 reducer 的数量。将此属性设置为您的 hadoop 配置可以处理的任何数量。

一旦为作业配置了给定数量的 reducer,该数量将被传递到您的分区中(顺便说一下,这看起来是正确的)。您的分区程序将开始为键/值对返回适当的缩减程序/分区。这就是您获得尽可能多的 reducer 的方式。

关于hadoop - 如何在 Hadoop v 0.21 中调用 Partitioner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6034204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com