gpt4 book ai didi

hadoop - 洗牌和排序后的 n-Records 到 reducer

转载 作者:可可西里 更新时间:2023-11-01 16:50:55 26 4
gpt4 key购买 nike

我只想将排序/洗牌后输出的前 10 条记录移动到缩减程序。这可能吗?

原因是这样的:我要在一个文件中找到数量最多的最少 10 项。但是,我知道映射阶段的结果将到达已经排序的 reducer。因此,我不想在映射器中排序,而是只想将“洗牌和排序”之后的前 10 行传递给缩减器。这将允许 reducer 仅对原始记录的一个子集进行排序。

有什么办法吗?

最佳答案

您可以通过为作业编写自定义 Combiner 来实现这一点。

MapReduce 作业的不同阶段是:

Mapper -> Partitioner -> Sorting -> Combiner -> Reducer.

现在 Combiner 逻辑只读取前 10 (n) 条记录,其余的都不一致。 Reducer 将从每个 Mapper/Combiner 接收仅 10 条记录。


@K246 提供的评论:

From haodop definitive guide (4th ed) : Before it writes to disk, the thread first divides the data into partitions corresponding to the reducers that they will ultimately be sent to. Within each partition, the background thread performs an in-memory sort by key, and if there is a combiner function, it is run on the output of the sort.

关于hadoop - 洗牌和排序后的 n-Records 到 reducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33346674/

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