gpt4 book ai didi

hadoop - 创建比 reducer 更多的分区

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

在我的单机上进行本地开发时,我相信 reducer 的默认数量是 6。在特定的 MR 步骤中,我实际上将数据分成 n 个分区,其中 n 可以大于 6。根据我的观察,看起来实际上只有 6 个分区得到处理,因为我只看到 6 个特定分区的输出。几个问题:

(a) 是否需要将 reducer 的数量设置为大于分区的数量?如果是这样,我可以在运行 Mapper 之前/期间/之后执行此操作吗?

(b) 为什么其他分区没有排队?有没有办法等待一个reducer处理完一个分区,然后再处理另一个分区,这样无论reducer的实际数量是否小于分区数量,都可以处理所有分区?

最佳答案

(a) 不可以。您可以根据需要拥有任意数量的 reducer 。分区只是决定哪组键/值对将转到哪个 reducer。它不决定将生成多少个 reducer。但是,如果在某种情况下你想根据你的要求设置 reducer 的数量,你可以通过 Job 来实现:

job.setNumReduceTasks(2);

(b) 这实际上是发生了什么。基于插槽的可用性,一组 reducer 被启动,它处理所有提供给它们的输入。如果所有的 reducer 都已完成并且一些数据仍未处理,则第二批 reducer 将启动并完成其余数据。无论分区和缩减器的数量如何,您的所有数据最终都会得到处理。

请确保您的分区逻辑正确。

附言: 为什么你认为 reducer 的默认数量是 6?

关于hadoop - 创建比 reducer 更多的分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333204/

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