gpt4 book ai didi

hadoop + 每个 reducer 的一键

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

在 Hadoop 中有没有一种方法可以确保每个 reducer 只获得映射器输出的一个键?

最佳答案

这个问题我有点不清楚。但我想我很清楚你想要什么。

首先,如果每次调用 reduce 时您没有做任何特别的事情,它只会获得一个具有一组一个或多个值的键(通过迭代器)。

我的猜测是您希望确保每个 reducer 都恰好获得一个“键值对”。基本上有两种方法可以做到这一点:

  1. 确保在映射器中输出的所有键都是唯一的。因此对于每个键只有一个值。
  2. 通过强制将所有键简单地归类为不同的组比较器来强制 reducer 执行此操作。

所以如果我正确理解你的问题。您应该实现一个 GroupComparator,它只声明所有键都不同,因此应该发送到不同的 reducer 调用。


由于这个问题的其他答案,我添加了更多细节:

有 3 种方法用于比较键(我从使用 0.18.3 API 所做的项目中提取了这些代码示例):

分区器

    conf.setPartitionerClass(KeyPartitioner.class);

分区器只是为了确保“必须相同的东西最终在同一个分区上”。如果您有 1 台计算机,则只有一个分区,所以这不会有太大帮助。

关键比较器

    conf.setOutputKeyComparatorClass(KeyComparator.class);

键比较器用于通过查看键来对组中的“键值对”进行排序......它必须以某种方式不同。

组比较器

    conf.setOutputValueGroupingComparator(GroupComparator.class);

组比较器用于对不同的键进行分组,但必须发送到同一个缩减器。

HTH

关于hadoop + 每个 reducer 的一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3744363/

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