gpt4 book ai didi

hadoop - 在 reducer 任务中调用 reduce 函数之前是否发生改组?

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

例如在字数统计工作中,我有 2 个映射器 Mapper A 和 Mapper B。

mapper A 的输出是:{hi,1},{hello,1},{hey,1}

mapper B 的输出是:{hi,1},{bye,1},{hey,1}

假设,没有combiner和1个reducer

然后,首先,洗牌发生

因此,在混洗映射器合并的输出时,结果是:

{hi,[1,1]},{hello,1},{hey,[1,1]},{bye,1}

然后排序发生:

{bye,1},{hello,1},{hey,[1,1]},{hi,[1,1]}

然后reducer任务中的reduce函数被调用,使得o/p为:

bye,2
hello,1
hey,2
hi,2

以上过程是否正确?在调用 reduce 函数之前是否会发生改组?或者调度程序只是将来自不同映射器的数据累积在一起,但不将具有相同键的数据分组在一起,这个过程发生在排序之后?为什么排序在这里很有用?

最佳答案

简短的回答是:是的,洗牌发生在 reduce() 被调用之前。需要排序以帮助 reducer 按键分组值。

有关更多详细信息,您可以在此处查看答案:What is the purpose of shuffling and sorting phase in the reducer in Map Reduce Programming?

关于hadoop - 在 reducer 任务中调用 reduce 函数之前是否发生改组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348287/

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