Hadoop Reducer的最终结果是什么?

Hadoop Reducer的最终结果是什么?,hadoop,mapreduce,Hadoop,Mapreduce,当项基于键映射到减缩器时,单个减缩器是否接收到包含单个键的列表,或者减缩器是否包含散列到该减缩器的所有键 例如: 我有7个我正在映射的唯一ID 当我编写reduce方法时,我是否可以假设当我循环遍历列表中的所有元素时,我只有一个唯一的id?或者我可以在一个reducer中有多个id吗?每次调用reduce()都将有一个键和一个或多个值。这从Map.reduce()方法的签名中可以明显看出:reduce(KEYIN键、Iterable值、上下文上下文) 一些例子: 如果映射程序使用相同的键和10

当项基于键映射到减缩器时,单个减缩器是否接收到包含单个键的列表,或者减缩器是否包含散列到该减缩器的所有键

例如: 我有7个我正在映射的唯一ID

当我编写reduce方法时,我是否可以假设当我循环遍历列表中的所有元素时,我只有一个唯一的id?或者我可以在一个reducer中有多个id吗?

每次调用
reduce()
都将有一个键和一个或多个值。这从Map.reduce()方法的签名中可以明显看出:
reduce(KEYIN键、Iterable值、上下文上下文)

一些例子:

  • 如果映射程序使用相同的键和10个不同的值调用
    Context.write()
    10次,reduce()方法将被调用一次,而
    values
    迭代器将提供10个不同的值
  • 如果映射程序使用10个不同的键调用
    Context.write()
    10次,
    reduce()
    将被调用10次,每次使用不同的键
请记住,这是默认情况的简化。您可以使用自定义分组比较器和其他技术来更改此行为

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