gpt4 book ai didi

hadoop - Hadoop什么时候开始shuffle

转载 作者:可可西里 更新时间:2023-11-01 16:31:57 25 4
gpt4 key购买 nike

我对洗牌何时开始有疑问。

假设我有 2 个映射器和 1 个缩减器。每个映射器将生成输出 map1 和 map2。这个map1和map2存储在各自datanode的临时磁盘中。

现在 reducer 应该等待 map1 和 map2 的输出?换句话说,什么时候开始洗牌?一旦 map1 完成还是必须等待 map2 也完成?

我正在收听 reducer 的改组流量,但我找不到任何流量,但控制台输出显示已经完成了 70%(大约)的减少。

14/12/18 17:45:55 INFO mapred.JobClient:  map 97% reduce 22%
14/12/18 17:45:58 INFO mapred.JobClient: map 98% reduce 22%
14/12/18 17:45:59 INFO mapred.JobClient: map 99% reduce 22%
14/12/18 17:46:07 INFO mapred.JobClient: map 100% reduce 22%
14/12/18 17:46:12 INFO mapred.JobClient: map 100% reduce 67%
14/12/18 17:46:15 INFO mapred.JobClient: map 100% reduce 71%

我看到在这一点之后有洗牌的交通流量进来。

我在这里有点困惑。这大约 70% 的 reducer 工作是什么? !

谢谢

最佳答案

在你的 reducer 中......前 33% 是复制阶段,接下来的 33% 是洗牌和排序阶段,最后 33% 是你的实际 reduce 操作。

我将尝试解释一个简单的流程:map任务完成后,map任务的输出将被复制到reduce任务应该发生的地方。 Map 和 Reduce 不会发生在同一台机器上。当一些映射器完成时,您会注意到减少阶段的一些增量,甚至在完整映射阶段发生之前。这是正在复制的那些完成的映射任务输出的数据。现在可以将已完成的映射任务复制到必然会发生 reduce task 的地方。只有在完整映射阶段结束后才会开始洗牌。这是因为,输出键要排序。你不能排序,直到你有完整的键空间..对..??

关于hadoop - Hadoop什么时候开始shuffle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27558312/

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