【发布时间】:2017-06-15 09:00:14
【问题描述】:
我只有一个从 mapper 发送到 reducer 的键,并且我将 reducer 的数量设置为 10。所以一个 reducer 将在该键上运行,其他 9 个 reducer 会做什么?
【问题讨论】:
我只有一个从 mapper 发送到 reducer 的键,并且我将 reducer 的数量设置为 10。所以一个 reducer 将在该键上运行,其他 9 个 reducer 会做什么?
【问题讨论】:
其他 9 个 reducer 将正常运行它们的生命周期,它们一旦运行就没有任何键/值要处理,因此它们会很快停止。因此,您将在它们不必要地运行时浪费资源。
您通常(大多数输出格式都这样做)还会发现您最终得到了一个用于 reduce 的部分文件,该文件运行但没有写入任何内容。部分文件不包含任何实际数据,仅包含文件元数据,例如 gzip 标头。
【讨论】:
IdentityReducer媲美吗?
其他 9 个 reducer 将一直运行到它们的 slot 时间结束。
他们不会有任何 K/V 对需要处理和快速停止。
您可以使用自定义分区器将映射输出平均分配给所有减速器; - 至少第一级;并最终在最后阶段通过一个 reducer 组合 - 从而减少大部分 reduce 阶段的计算负载。
【讨论】: