gpt4 book ai didi

sorting - MapReduce 排序迭代器

转载 作者:可可西里 更新时间:2023-11-01 15:41:55 25 4
gpt4 key购买 nike

我正在阅读 MapRedcue 的源代码,以更深入地了解 MapReduce 的内部机制。当我试图了解如何合并映射阶段产生的数据并将其发送到减少功能以进行进一步处理时,我遇到了问题。源代码看起来太复杂了,我只想知道它的概念。

我想知道的是在传递给 reduce() 函数之前如何对值(作为参数 Iterator)进行排序。在 MapTask.runOldReducer() 中,它将通过传递 RawKeyValueIterator 创建 ReduceValuesIterator,其中将调用 Merger.merge() 并执行许多操作(例如收集段)。阅读代码后,在我看来它只尝试按键排序,并且与该键相关的值将被聚合/收集而不被删除。例如,map() 可能产生

    Key                              Value    http://www.abcfood.com/aLink     object A    http://www.abcfood.com/bLink     object B    http://www.abcfood.com/cLink     object C

然后在reduce()中,

key 将是 http://www.abcfood.com/ Values 将包含对象 A、对象 B 和对象 C。

所以它是按键http://www.abcfood.com/排序的?这个对吗?或者它对什么进行排序然后传递给 reduce 函数?

非常感谢。

最佳答案

假设这是您的输入:

Key                              Value
http://www.example.com/asd object A
http://www.abcfood.com/aLink object A
http://www.abcfood.com/bLink object B
http://www.abcfood.com/cLink object C
http://www.example.com/t1 object X

reducer 会得到这个:(不保证值的顺序)

Key                              Values
http://www.abcfood.com/ [ "object A", "object C", "object B" ]
http://www.example.com/ [ "object X", "object A" ]

关于sorting - MapReduce 排序迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7739561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com