gpt4 book ai didi

hadoop - reducer 可以动态地使用多个节点吗?

转载 作者:可可西里 更新时间:2023-11-01 14:48:16 26 4
gpt4 key购买 nike

在编写MapReduce作业的代码时,如果我们手动设置reducer的个数,有可能发送到某个reducer的数据很大。这样的话,reducer task 能不能同时运行在多个节点上呢?也许通过划分 List<Value> 中的数据对应一个key,然后内部合并?

如果 reducer 无法自动调整要使用的节点数量,那么我们如何处理与键对应的值分布不均的情况? default hadoop MapReduce partitioner根据散列值进行分区,不考虑 List<Value> 的大小对应键。

最佳答案

不,reducer 不会自动缩放。如果它的工作量太大,它就会崩溃。

您(可能)能做的最好的事情就是编写您自己的自定义分区程序,在 reducer 之间平均分配工作负载。这样做并不总是那么容易,因为您可能需要对数据进行采样或估计,甚至需要额外的计数工作,并编写一个合适的负载平衡算法来满足您的问题的需要。

您想要的可能不是基于每个键值的大小来分配负载,而是基于 reducer 将执行的计算(这两者并不总是相同的)。

关于hadoop - reducer 可以动态地使用多个节点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480727/

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