【问题标题】:will keys be unique when number of reducers are less当减速器数量较少时,键是否唯一
【发布时间】:2015-07-20 18:31:24
【问题描述】:

我想问一下不同的键是否可以在同一个减速器中结束。如果我基于密钥相同的假设构建我的减速器,那将是一种有效的方法。假设每个作业配置的 reducer 数量为 5,并且我从 map 输出中获得的唯一键是 10,理想情况下应该需要 10 个 reducer,相同的 reducer 方法现在将接收 2 个不同类型的键。考虑 Hash partitioning ,这意味着使用较少 reducer 的场景。

【问题讨论】:

  • 是的,不同的键可以在同一个reducer中结束。

标签: hadoop mapreduce


【解决方案1】:

一般来说,你不能假设 1 个 reducer 只会收到一个 key。 例如,如果您的映射器在 N>1 处输出 N 键,并且如果您设置了 1 个减速器,那么唯一的减速器将接收所有键。

但是如果你控制number of different keys = number of reducers,那么你可能会假设每个reducer都会收到相同的key。 例如,如果您的映射器正好输出 N 个键,并且如果您设置了 N 个 reducer,那么每个 reducer 将只收到 1 个键。

【讨论】:

    【解决方案2】:

    如果你定义了一个实现 WritableComparable 的类,你可以使用它作为 key 并为 equals 和 hashCode 方法定义你自己的规则,这样你就可以根据你想要的规则将不同的 key 发送到同一个 reducer。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      相关资源
      最近更新 更多