gpt4 book ai didi

Hadoop 如何分配给 reducer 来处理不平衡负载 - CustomPartition

转载 作者:可可西里 更新时间:2023-11-01 14:41:27 28 4
gpt4 key购买 nike

我有一个必须在多个输出中输出的 map reducer 作业,我在这个例子中使用 multipleOutputFormat:http://grepalex.com/2013/05/20/multipleoutputs-part1/

这是挑战:

  • 如果我的分区器向每个 reducer 发送一个 key (假设 key 指的是单独的输出文件),那么我的一些具有大量数据的 reducer 将永远占用。
  • 如果我的分区器随机发送每个缩减器 (theKey+randomNumber),那么许多缩减器写入多个输出,我有 IO 问题。

作为解决方案:

  • 选项 1:根据权重将键分配给 reducer 。所以所有的 reducer 都有相同的负载。 (1 个大 key 发送到 5 个不同的 reducer ,而 6 个小 key 发送到单个 reducer )

  • 选项 2:再次根据 key 的权重分配 key ,但确保 reducer 只能使用一个 key 。 (1 个大 key 被发送到 5 个不同的,但 6 个小 key 也被发送到单独的 reducer)

优点和缺点:

  • 在选项 1 中:我有平衡的 reducer ,但一些 reducer 写入不同的文件(小键)。
  • 在选项 2 中:我有不平衡的 reducer ,但限制了 reducer 上的最大负载,并且每个 reducer 都写入自己的文件。

这两个选项都在合理的时间内运行。我需要一些关于我应该选择哪一个的建议。

谢谢

最佳答案

选项 1 似乎是最佳选择。两个选项的执行时间将接近相同,但选项 1 最大限度地减少了运行每个 reducer 所需的开销工作。

关于Hadoop 如何分配给 reducer 来处理不平衡负载 - CustomPartition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460212/

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