gpt4 book ai didi

hadoop - hadoop map reduce中分组比较器有什么用

转载 作者:可可西里 更新时间:2023-11-01 14:07:41 26 4
gpt4 key购买 nike

我想知道为什么在二级 mapreduce 中使用分组比较器。

根据二次排序的最终指南示例

我们希望键的排序顺序是按年份(升序)然后按温度(降序):

1900 35°C
1900 34°C
1900 34°C
...
1901 36°C
1901 35°C

通过设置分区器按键的年份部分进行分区,我们可以保证同一年的记录进入同一个 reducer 。这仍然不足以实现我们的目标,但是。分区器确保只有一个 reducer 接收所有记录一年;它不会改变 reducer 在分区内按键分组的事实。

既然我们已经编写了自己的分区器来处理映射到特定 reducer 的输出键,那么我们为什么要对它进行分组。

提前致谢

最佳答案

为了支持我选择的答案,我补充说:

this explanation 开始

**Input**:

symbol time price
a 1 10
a 2 20
b 3 30

**Map output**: create composite key\values like so:

> symbol-time time-price
>
>**a-1**         1-10
>
>**a-2**         2-20
>
>**b-3**         3-30

分区器:尽管键不同,但会将 a-1 和 a-2 键路由到同一个缩减器。它还会将 b-3 路由到一个单独的 reducer 。

GroupComparator:一旦复合键\值到达reducer而不是reducer获取

>(**a-1**,{1-10})
>
>(**a-2**,{2-20})

由于组合后的唯一键值会发生上述情况。

组比较器将确保 reducer 获得:

(a-1,{**1-10,2-20**})

分组值的键将是组中排在第一位的值。这可以通过 Key 比较器控制。

**[[In a single reduce method call.]]**

关于hadoop - hadoop map reduce中分组比较器有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14728480/

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