gpt4 book ai didi

java - 处理 Hadoop mapreduce 中键之间值的不均匀分布

转载 作者:可可西里 更新时间:2023-11-01 16:17:13 24 4
gpt4 key购买 nike

我正在处理 hadoop 中的输入日志文件,其中的键分布不均匀。这意味着 reducer 的值分布不均匀。例如 key1 有 1 个值,key2 有 1000 个值。

有什么方法可以对与同一键关联的值进行负载平衡[我也不想修改我的键]

最佳答案

如果您知道哪些键将具有异常大量的值,您可以使用以下技巧。

您可以实现自定义 Partitioner这将确保您的每个倾斜 key 都进入一个分区,然后所有其他内容将通过它们的 hashCode 分发到其余分区。 (这是默认的 HashPartitioner 所做的)。

您可以创建自定义 Partitioner通过实现这个接口(interface):

public interface Partitioner<K, V> extends JobConfigurable {
int getPartition(K key, V value, int numPartitions);
}

然后您可以告诉 Hadoop 使用您的 Partitioner与:

conf.setPartitionerClass(CustomPartitioner.class);

关于java - 处理 Hadoop mapreduce 中键之间值的不均匀分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17870655/

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