gpt4 book ai didi

sorting - mapreduce 分区内的数据是否已排序,如果是,它是如何发生的?

转载 作者:可可西里 更新时间:2023-11-01 15:35:43 31 4
gpt4 key购买 nike

mapreduce 分区内的数据是否已排序,如果是,如何排序? AFAIK,它是根据 key 分组的。如果它在内部排序,那么对所有分区内的所有数据进行排序不是一种开销吗?

最佳答案

如果您谈论的是映射器作为输入接收的输入拆分,那么不是;它们没有排序,因为这确实会产生不必要的开销。

排序在 map 阶段结束之前开始(仅当使用 reducer 时),因此 reduce 函数的输入已排序。 Partitioner 定义了指定哪个 reducer 将处理映射器输出的标准。 HashPartitioner(默认使用的 Partitioner 的实现)对映射器的输出键进行哈希处理,并将它们发送到与特定哈希值相对应的缩减器(所以这里是发生分组的时候)。

排序 实际上是 reduce 阶段的第二个过程,在 shuffling a.k.a. copying(即获取映射器的输出)之后和之前实际上运行 reduce 函数,它是基于键的。它可以被认为是一个类似合并排序的过程,它合并映射器的排序输出。

您可以在 Tom White 的书“Hadoop:权威指南”中找到更多详细信息。这是我所描述内容的示意图:

enter image description here

关于sorting - mapreduce 分区内的数据是否已排序,如果是,它是如何发生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26037627/

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