MapReduce 用于传递和发出键值对的基本信息。 我需要稍微弄清楚我们传递了什么以及发出什么。 这是我的担忧: MapReduce 输入和输出:
1.Map() 方法 - 它是否接受单个或键值对列表并发出什么? 2.对于每个输入键值对,映射器发出什么?相同类型还是不同类型? 3.对于每个中间键,reducer会发出什么?有类型限制吗? 4.Reducer接收与相同键关联的所有值。这些值将如何排序(如排序或轨道排序)?该顺序是否因运行而异? 5.在shuffle和sort阶段,键和值以什么顺序呈现?
最佳答案
- 对于每个输入 k1, v1 映射会发出零个或多个 k2, v2。
- 对于每个 k2 reducer 接收 k2,列表(v1,v3,v4..)。
- 对于每个输入 k2,list(v) reducer 可以发出零个或多个 k3、v3。
第 2 步中的值是任意排序的。 键,值 - 映射器和化简器的输出应该是相同的类型,即所有键必须是相同类型,所有值必须是相同类型。
关于MapReduce 输入/输出为每个键值对发出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311350/