gpt4 book ai didi

hadoop - MapReduce Job 中的排序在哪里完成?

转载 作者:可可西里 更新时间:2023-11-01 16:28:18 24 4
gpt4 key购买 nike

当我们编写程序时,Hadoop Mapreduce Jobs 中的排序在哪里完成?我发现在我的计划中前进有困难。

最佳答案

排序由 Hadoop MapReduce 框架完成。映射器输出传递给缩减器的中间(键,值)对。每个 reducer 都按排序顺序获取所有键。

插图:

假设使用了 2 个映射器:

-- mapper1 output
key_a, value_a1
key_b, value_b2
key_c, value_c1
key_d, value_d2

-- mapper2 output
key_a, value_a2
key_b, value_b1
key_d, value_d1
key_d, value_d3

排序和洗牌(由 Hadoop 框架完成的步骤)将确保中间键以排序后的键顺序传递给缩减器。

假设使用了 2 个 reducer :

--- reducer1 input (sorted by keys)
key_a, [value_a1, value_a2]
key_d, [value_d2, value_d1, value_d3]

--- reducer2 input (sorted by keys)
key_b, [value_b2, value_b1]
key_c, [value_c1]

如果你想确保传递给 reducer 的键之间的全局排序,你可以使用 Total Order Partitioner .在这种情况下,每个 reducer 将获得如下输入:

-- reducer1 input (sorted by keys - global)
key_a, [value_a1, value_a2]
key_b, [value_b2, value_b1]

-- reducer2 input (sorted by keys - global)
key_c, [value_c1]
key_d, [value_d2, value_d1, value_d3]

关于hadoop - MapReduce Job 中的排序在哪里完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50523599/

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