gpt4 book ai didi

hadoop - 限制所有 reducer 共同产生的记录数

转载 作者:可可西里 更新时间:2023-11-01 15:18:51 27 4
gpt4 key购买 nike

这是用例:

输入的 url 被 map 读取,然后在一些过滤后发出。然后分区程序根据它们的主机名对它们进行分区。

在运行 map-reduce 作业后,我对输出 url 有一个全局限制。我将其平均分配给所有 reducer 。IE。如果全局限制为 1000 且 reducer 的数量为 5,则每个 reducer 最多将发出 (1000/5 = 200) 个 url 作为输出

问题是如果只有 2 个主机的 url(由于用户输入)并且这 2 个主机中的每一个都有 100000 个 url,处理这些 url 的 2 个 reducer(同一主机,同一分区)将限制每个输出 200 个 url。由于分区和发出 0 条记录,Rest reducers 没有获得任何数据进行处理。

因此,即使我有 100000 个网址/主机和 1000 个全局限制,输出也只有 400 个网址(200 个网址/主机)。

最佳答案

如果您不必按主机名进行分区,您可以通过随机分区程序解决您的问题。

如果您必须按主机名进行分区,我认为没有任何简单的答案。每个 reducer 都不知道有多少记录要来。每个 reducer 必须累积 100000 条记录或与其接收的一样多。您需要覆盖 reducer 中的清理功能。 Reducers 需要在“清理”功能中相互交谈(可能通过计数器),并决定需要多少记录,并且只在清理功能中写出记录。

你怎么看?

关于hadoop - 限制所有 reducer 共同产生的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022050/

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