Hadoop Reducer的最终结果



当项目基于键映射到reducer时,单个reducer是否接收到包含单个键的List,或者reducer包含哈希到该reducer的所有键?

示例:我有7个唯一的ID,我正在映射。

当我写reduce方法时,我能假设当我循环遍历列表中的所有元素时,我只有1个唯一的id吗?或者我可以在减速器中有不止一个id吗?

reduce()的每个调用都将有一个键和一个或多个值。这从Map.reduce()方法的签名中可以明显看出:reduce(KEYIN key, Iterable<VALUEIN> values, Context context)

一些例子:

  • 如果映射程序用相同的键和10个不同的值调用Context.write() 10次,reduce()方法将被调用一次,values迭代器将提供10个不同值
  • 如果映射程序使用10个不同的密钥调用Context.write() 10次,则reduce()将被调用10次,每次都使用不同的密钥

请记住,这是对默认情况的简化。您可以使用自定义分组比较器和其他技术来更改此行为。

此外,请记住,根据集群的设置,不同的减速器可能不在同一台机器上运行,也不在与映射器相同的机器上运行。

相关内容

  • 没有找到相关文章

最新更新